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
);