-- { dg-do run } with Ada.Text_IO; use Ada.Text_IO; with System.Storage_Elements; use System.Storage_Elements; procedure Task_Stack_Align is type Align_Me is record Value : Integer; end record; for Align_Me'Alignment use Standard'Maximum_Alignment; procedure Check_Local_Alignment_From (Context : String) is Object : Align_Me; begin if To_Integer (Object'Address) mod Object'Alignment /= 0 then Put_Line ("alignment check failed in " & Context); end if; end; task type T; task body T is begin Check_Local_Alignment_From ("task T"); end; Tasks : array (1 .. 50) of T; begin Check_Local_Alignment_From ("environment"); end;