1-- { dg-do run } 2 3procedure Enum3 is 4 type Enum is (Aaa, Bbb, Ccc); 5 for Enum use (1,2,4); 6begin 7 for Lo in Enum loop 8 for Hi in Enum loop 9 declare 10 subtype S is Enum range Lo .. Hi; 11 type Vector is array (S) of Integer; 12 Vec : Vector; 13 begin 14 for I in S loop 15 Vec (I) := 0; 16 end loop; 17 if Vec /= (S => 0) then 18 raise Program_Error; 19 end if; 20 end; 21 end loop; 22 end loop; 23end; 24