-- { dg-do compile } -- { dg-options "-gnatws" } with System.Multiprocessors; procedure Atomic10 is type Atomic_Unsigned is mod 2 ** 32; pragma Atomic (Atomic_Unsigned); Max : Positive := Positive (System.Multiprocessors.Number_Of_CPUs); Comp_Size : constant := 64 * 8; subtype Index_Type is Positive range 1 .. Max; type Array_Type is array (Index_Type) of aliased Atomic_Unsigned; -- { dg-error "cannot be guaranteed" } for Array_Type'Component_Size use Comp_Size; Slots : Array_Type; begin for Index in Index_Type loop Slots (Index) := 0; end loop; end;