2 -- { dg-options "-gnatws" }
7 type RefRealNodeData is access RealNodeData;
10 type RefExpression is access ExpressionEntry;
12 type RefDefUseEntry is access Natural;
14 type ExpressionEntry is
16 Number : RefDefUseEntry;
26 for ExpressionEntry use
28 Number at 0 range 0 .. 63;
29 Id at 8 range 0 .. 31;
34 Node at 0 range 0 .. 63;
35 Id at 8 range 0 .. 31;
38 U_Node : RefDefUseEntry := new Natural'(1);
39 E_Node : RefExpression := new ExpressionEntry'(Number => U_Node,
41 R_Node : RefRealNodeData := new RealNodeData'(Node => E_Node,
44 procedure test_routine (NodeRealData : RefRealNodeData)
46 OldHead : RefDefUseEntry renames NodeRealData.all.Node.all.Number;
47 OldHead1 : constant RefDefUseEntry := OldHead;
49 NodeRealData.all.Node := new ExpressionEntry'(Number => null, Id => 4);
51 OldHead2 : constant RefDefUseEntry := OldHead;
53 if OldHead1 /= OldHead2
55 Text_IO.Put_Line (" OldHead changed !!!");
60 test_routine (R_Node);