1-- { dg-do compile } 2-- { dg-options "-O" } 3 4procedure Opt19 is 5 6 type Enum is (One, Two); 7 8 type Vector_T is array (Enum) of Integer; 9 10 Zero_Vector : constant Vector_T := (Enum => 0); 11 12 type T is record 13 Vector : Vector_T; 14 end record; 15 16 procedure Nested (Value : in out T; E : Enum; B : out Boolean) is 17 I : Integer renames Value.Vector(E); 18 begin 19 B := I /= 0; 20 end; 21 22 Obj : T := (Vector => Zero_Vector); 23 B : Boolean; 24 25begin 26 Nested (Obj, One, B); 27end; 28