einfo.ads: Minor comment addition: Etype of package is Standard_Void_Type.
authorRobert Dewar <dewar@adacore.com>
Thu, 20 Feb 2014 13:38:06 +0000 (13:38 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 20 Feb 2014 13:38:06 +0000 (14:38 +0100)
2014-02-20  Robert Dewar  <dewar@adacore.com>

* einfo.ads: Minor comment addition: Etype of package is
Standard_Void_Type.
* checks.adb, exp_aggr.adb, exp_atag.adb, exp_attr.adb, exp_ch13.adb,
exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb,
exp_ch7.adb, exp_ch9.adb, exp_dbug.adb, exp_disp.adb, exp_imgv.adb,
exp_intr.adb, exp_prag.adb, exp_sel.adb, exp_strm.adb, exp_util.adb,
freeze.adb, rtsfind.adb, sem_aggr.adb, sem_attr.adb, sem_ch10.adb,
sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
sem_ch6.adb, sem_ch8.adb, sem_dim.adb, sem_prag.adb, sem_res.adb,
sem_util.adb, tbuild.adb, tbuild.ads: Remove New_Reference_To.
Replace all calls with calls to New_Occurrence_Of.

2014-02-20  Robert Dewar  <dewar@adacore.com>

* par-util.adb (Ignore, case of right paren): Make this a
serious error.

From-SVN: r207942

41 files changed:
gcc/ada/ChangeLog
gcc/ada/checks.adb
gcc/ada/einfo.ads
gcc/ada/exp_aggr.adb
gcc/ada/exp_atag.adb
gcc/ada/exp_attr.adb
gcc/ada/exp_ch13.adb
gcc/ada/exp_ch2.adb
gcc/ada/exp_ch3.adb
gcc/ada/exp_ch4.adb
gcc/ada/exp_ch5.adb
gcc/ada/exp_ch6.adb
gcc/ada/exp_ch7.adb
gcc/ada/exp_ch9.adb
gcc/ada/exp_dbug.adb
gcc/ada/exp_disp.adb
gcc/ada/exp_imgv.adb
gcc/ada/exp_intr.adb
gcc/ada/exp_prag.adb
gcc/ada/exp_sel.adb
gcc/ada/exp_strm.adb
gcc/ada/exp_util.adb
gcc/ada/freeze.adb
gcc/ada/par-util.adb
gcc/ada/rtsfind.adb
gcc/ada/sem_aggr.adb
gcc/ada/sem_attr.adb
gcc/ada/sem_ch10.adb
gcc/ada/sem_ch12.adb
gcc/ada/sem_ch13.adb
gcc/ada/sem_ch3.adb
gcc/ada/sem_ch4.adb
gcc/ada/sem_ch5.adb
gcc/ada/sem_ch6.adb
gcc/ada/sem_ch8.adb
gcc/ada/sem_dim.adb
gcc/ada/sem_prag.adb
gcc/ada/sem_res.adb
gcc/ada/sem_util.adb
gcc/ada/tbuild.adb
gcc/ada/tbuild.ads

index f880738..ae7d4fe 100644 (file)
@@ -1,3 +1,22 @@
+2014-02-20  Robert Dewar  <dewar@adacore.com>
+
+       * einfo.ads: Minor comment addition: Etype of package is
+       Standard_Void_Type.
+       * checks.adb, exp_aggr.adb, exp_atag.adb, exp_attr.adb, exp_ch13.adb,
+       exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb,
+       exp_ch7.adb, exp_ch9.adb, exp_dbug.adb, exp_disp.adb, exp_imgv.adb,
+       exp_intr.adb, exp_prag.adb, exp_sel.adb, exp_strm.adb, exp_util.adb,
+       freeze.adb, rtsfind.adb, sem_aggr.adb, sem_attr.adb, sem_ch10.adb,
+       sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
+       sem_ch6.adb, sem_ch8.adb, sem_dim.adb, sem_prag.adb, sem_res.adb,
+       sem_util.adb, tbuild.adb, tbuild.ads: Remove New_Reference_To.
+       Replace all calls with calls to New_Occurrence_Of.
+
+2014-02-20  Robert Dewar  <dewar@adacore.com>
+
+       * par-util.adb (Ignore, case of right paren): Make this a
+       serious error.
+
 2014-02-19  Robert Dewar  <dewar@adacore.com>
 
        * sem_ch5.adb, sem_prag.adb, sem_attr.adb: Minor reformatting.
index e3241e9..82b6d60 100644 (file)
@@ -1031,7 +1031,7 @@ package body Checks is
             Rewrite (N,
               OK_Convert_To (Typ,
                 Make_Function_Call (Loc,
-                  Name => New_Reference_To (RTE (Cent), Loc),
+                  Name => New_Occurrence_Of (RTE (Cent), Loc),
                   Parameter_Associations => New_List (
                     OK_Convert_To (RTE (RE_Integer_64), Left_Opnd  (N)),
                     OK_Convert_To (RTE (RE_Integer_64), Right_Opnd (N))))));
@@ -2258,7 +2258,7 @@ package body Checks is
                 Then_Statements => New_List (
                   Make_Raise_Statement (Loc,
                     Name       =>
-                      New_Reference_To (Standard_Program_Error, Loc),
+                      New_Occurrence_Of (Standard_Program_Error, Loc),
                     Expression => Make_String_Literal (Loc, End_String)))));
 
          --  Create a sequence of overlapping checks by and-ing them all
@@ -2388,7 +2388,7 @@ package body Checks is
          --  Step 1: Create the expression to verify the validity of the
          --  context.
 
-         Check := New_Reference_To (Context, Loc);
+         Check := New_Occurrence_Of (Context, Loc);
 
          --  When processing a function result, use 'Result. Generate
          --    Context'Result
@@ -5734,7 +5734,7 @@ package body Checks is
                          Duplicate_Subexpr_Move_Checks (Sub)),
                      Right_Opnd =>
                        Make_Attribute_Reference (Loc,
-                         Prefix         => New_Reference_To (Etype (A), Loc),
+                         Prefix         => New_Occurrence_Of (Etype (A), Loc),
                          Attribute_Name => Name_Range)),
                 Reason => CE_Index_Check_Failed));
          end if;
@@ -5788,7 +5788,7 @@ package body Checks is
                      Range_N :=
                        Make_Attribute_Reference (Loc,
                          Prefix         =>
-                           New_Reference_To (Etype (A_Idx), Loc),
+                           New_Occurrence_Of (Etype (A_Idx), Loc),
                          Attribute_Name => Name_Range);
 
                   --  For arrays with non-constant bounds we cannot generate
@@ -6936,7 +6936,7 @@ package body Checks is
                 New_Occurrence_Of (RTE (RE_Mark_Id), Loc),
               Expression          =>
                 Make_Function_Call (Loc,
-                  Name => New_Reference_To (RTE (RE_SS_Mark), Loc)))),
+                  Name => New_Occurrence_Of (RTE (RE_SS_Mark), Loc)))),
 
           Handled_Statement_Sequence =>
             Make_Handled_Sequence_Of_Statements (Loc,
@@ -6944,7 +6944,7 @@ package body Checks is
                 Make_Procedure_Call_Statement (Loc,
                   Name => New_Occurrence_Of (RTE (RE_SS_Release), Loc),
                   Parameter_Associations => New_List (
-                    New_Reference_To (M, Loc))))));
+                    New_Occurrence_Of (M, Loc))))));
    end Make_Bignum_Block;
 
    ----------------------------------
index 52ef9fa..0b5d72b 100644 (file)
@@ -1121,7 +1121,8 @@ package Einfo is
 --       itself. For a subtype entity, Etype points to the base type. For
 --       a class wide type, points to the corresponding specific type. For a
 --       subprogram or subprogram type, Etype has the return type of a function
---       or is set to Standard_Void_Type to represent a procedure.
+--       or is set to Standard_Void_Type to represent a procedure. The Etype
+--       field of a package is also set to Standard_Void_Type.
 --
 --       Note one obscure case: for pragma Default_Storage_Pool (null), the
 --       Etype of the N_Null node is Empty.
index 29366d0..aa742d6 100644 (file)
@@ -1236,12 +1236,12 @@ package body Exp_Aggr is
                         Make_Selected_Component (Loc,
                           Prefix        =>  New_Copy_Tree (Indexed_Comp),
                           Selector_Name =>
-                            New_Reference_To
+                            New_Occurrence_Of
                               (First_Tag_Component (Full_Typ), Loc)),
 
                       Expression =>
                         Unchecked_Convert_To (RTE (RE_Tag),
-                          New_Reference_To
+                          New_Occurrence_Of
                             (Node (First_Elmt (Access_Disp_Table (Full_Typ))),
                              Loc)));
 
@@ -1409,7 +1409,7 @@ package body Exp_Aggr is
 
          --  Construct the statements to execute in the loop body
 
-         L_Body := Gen_Assign (New_Reference_To (L_J, Loc), Expr);
+         L_Body := Gen_Assign (New_Occurrence_Of (L_J, Loc), Expr);
 
          --  Construct the final loop
 
@@ -1496,7 +1496,7 @@ package body Exp_Aggr is
              (Loc,
               Condition => Make_Op_Lt
                              (Loc,
-                              Left_Opnd  => New_Reference_To (W_J, Loc),
+                              Left_Opnd  => New_Occurrence_Of (W_J, Loc),
                               Right_Opnd => New_Copy_Tree (H)));
 
          --  Construct the statements to execute in the loop body
@@ -1506,17 +1506,17 @@ package body Exp_Aggr is
              (Loc,
               Prefix         => Index_Base_Name,
               Attribute_Name => Name_Succ,
-              Expressions    => New_List (New_Reference_To (W_J, Loc)));
+              Expressions    => New_List (New_Occurrence_Of (W_J, Loc)));
 
          W_Increment  :=
            Make_OK_Assignment_Statement
              (Loc,
-              Name       => New_Reference_To (W_J, Loc),
+              Name       => New_Occurrence_Of (W_J, Loc),
               Expression => W_Index_Succ);
 
          Append_To (W_Body, W_Increment);
          Append_List_To (W_Body,
-           Gen_Assign (New_Reference_To (W_J, Loc), Expr));
+           Gen_Assign (New_Occurrence_Of (W_J, Loc), Expr));
 
          --  Construct the final loop
 
@@ -1535,7 +1535,7 @@ package body Exp_Aggr is
 
       function Index_Base_Name return Node_Id is
       begin
-         return New_Reference_To (Index_Base, Sloc (N));
+         return New_Occurrence_Of (Index_Base, Sloc (N));
       end Index_Base_Name;
 
       ------------------------------------
@@ -2198,7 +2198,7 @@ package body Exp_Aggr is
             Append_To (L,
               Make_Procedure_Call_Statement (Loc,
                 Name =>
-                  New_Reference_To
+                  New_Occurrence_Of
                     (Find_Prim_Op (Init_Typ, Name_Initialize), Loc),
                 Parameter_Associations => New_List (New_Copy_Tree (Ref))));
          end if;
@@ -2490,12 +2490,12 @@ package body Exp_Aggr is
                         Make_Selected_Component (Loc,
                           Prefix => New_Copy_Tree (Target),
                           Selector_Name =>
-                            New_Reference_To
+                            New_Occurrence_Of
                               (First_Tag_Component (Base_Type (Typ)), Loc)),
 
                       Expression =>
                         Unchecked_Convert_To (RTE (RE_Tag),
-                          New_Reference_To
+                          New_Occurrence_Of
                             (Node (First_Elmt
                                (Access_Disp_Table (Base_Type (Typ)))),
                              Loc)));
@@ -2628,7 +2628,7 @@ package body Exp_Aggr is
                if Present (CPP_Init_Proc (T)) then
                   Append_To (L,
                     Make_Procedure_Call_Statement (Loc,
-                      New_Reference_To (CPP_Init_Proc (T), Loc)));
+                      New_Occurrence_Of (CPP_Init_Proc (T), Loc)));
                end if;
             end Invoke_IC_Proc;
 
@@ -2641,7 +2641,7 @@ package body Exp_Aggr is
                Append_To (L,
                  Make_Procedure_Call_Statement (Loc,
                    Name =>
-                     New_Reference_To
+                     New_Occurrence_Of
                        (Base_Init_Proc (CPP_Parent), Loc),
                    Parameter_Associations => New_List (
                      Unchecked_Convert_To (CPP_Parent,
@@ -2798,7 +2798,7 @@ package body Exp_Aggr is
                          Subtype_Indication  =>
                            Make_Subtype_Indication (Loc,
                              Subtype_Mark =>
-                               New_Reference_To (Etype (Comp_Type), Loc),
+                               New_Occurrence_Of (Etype (Comp_Type), Loc),
                              Constraint =>
                                Make_Index_Or_Discriminant_Constraint
                                  (Loc,
@@ -2814,7 +2814,7 @@ package body Exp_Aggr is
                      TmpD : constant Node_Id :=
                        Make_Object_Declaration (Loc,
                          Defining_Identifier => TmpE,
-                         Object_Definition   => New_Reference_To (SubE, Loc));
+                         Object_Definition   => New_Occurrence_Of (SubE, Loc));
 
                   begin
                      Set_No_Initialization (TmpD);
@@ -2825,14 +2825,14 @@ package body Exp_Aggr is
 
                      Append_List_To (L,
                        Late_Expansion (Expr_Q, Comp_Type,
-                         New_Reference_To (TmpE, Loc)));
+                         New_Occurrence_Of (TmpE, Loc)));
 
                      --  Slide
 
                      Append_To (L,
                        Make_Assignment_Statement (Loc,
                          Name       => New_Copy_Tree (Comp_Expr),
-                         Expression => New_Reference_To (TmpE, Loc)));
+                         Expression => New_Occurrence_Of (TmpE, Loc)));
                   end;
 
                --  Normal case (sliding not required)
@@ -2872,12 +2872,12 @@ package body Exp_Aggr is
                         Make_Selected_Component (Loc,
                           Prefix =>  New_Copy_Tree (Comp_Expr),
                           Selector_Name =>
-                            New_Reference_To
+                            New_Occurrence_Of
                               (First_Tag_Component (Comp_Type), Loc)),
 
                       Expression =>
                         Unchecked_Convert_To (RTE (RE_Tag),
-                          New_Reference_To
+                          New_Occurrence_Of
                             (Node (First_Elmt (Access_Disp_Table (Comp_Type))),
                              Loc)));
 
@@ -2990,12 +2990,12 @@ package body Exp_Aggr is
                Make_Selected_Component (Loc,
                  Prefix => New_Copy_Tree (Target),
                  Selector_Name =>
-                   New_Reference_To
+                   New_Occurrence_Of
                      (First_Tag_Component (Base_Type (Typ)), Loc)),
 
              Expression =>
                Unchecked_Convert_To (RTE (RE_Tag),
-                 New_Reference_To
+                 New_Occurrence_Of
                    (Node (First_Elmt (Access_Disp_Table (Base_Type (Typ)))),
                     Loc)));
 
@@ -3073,7 +3073,7 @@ package body Exp_Aggr is
 
       Occ  : constant Node_Id :=
         Unchecked_Convert_To (Typ,
-          Make_Explicit_Dereference (Loc, New_Reference_To (Temp, Loc)));
+          Make_Explicit_Dereference (Loc, New_Occurrence_Of (Temp, Loc)));
 
    begin
       if Is_Array_Type (Typ) then
@@ -4655,7 +4655,7 @@ package body Exp_Aggr is
                   Make_Op_Add (Loc,
                     Left_Opnd  =>
                       Make_Attribute_Reference (Loc,
-                        Prefix         => New_Reference_To (Ind_Typ, Loc),
+                        Prefix         => New_Occurrence_Of (Ind_Typ, Loc),
                         Attribute_Name => Name_Pos,
                         Expressions    =>
                           New_List
@@ -4664,7 +4664,7 @@ package body Exp_Aggr is
 
                 Right_Opnd =>
                   Make_Attribute_Reference (Loc,
-                    Prefix         => New_Reference_To (Ind_Typ, Loc),
+                    Prefix         => New_Occurrence_Of (Ind_Typ, Loc),
                     Attribute_Name => Name_Pos,
                     Expressions    => New_List (
                       Duplicate_Subexpr_Move_Checks (Aggr_Hi))));
@@ -5214,7 +5214,7 @@ package body Exp_Aggr is
 
       begin
          if Nkind (Tmp) = N_Defining_Identifier then
-            Target := New_Reference_To (Tmp, Loc);
+            Target := New_Occurrence_Of (Tmp, Loc);
 
          else
 
@@ -6579,7 +6579,7 @@ package body Exp_Aggr is
          --   Call init proc to set discriminants.
          --   There should eventually be a special procedure for this ???
 
-         Ref := New_Reference_To (Defining_Identifier (N), Loc);
+         Ref := New_Occurrence_Of (Defining_Identifier (N), Loc);
          Insert_Actions_After (N,
            Build_Initialization_Call (Sloc (N), Ref, Typ));
       end if;
index 6020145..36e7dc6 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2006-2011, Free Software Foundation, Inc.         --
+--          Copyright (C) 2006-2013, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -87,13 +87,13 @@ package body Exp_Atag is
       if Tagged_Type_Expansion then
          Tag_Node :=
            Unchecked_Convert_To (RTE (RE_Tag),
-             New_Reference_To
+             New_Occurrence_Of
               (Node (First_Elmt (Access_Disp_Table (Typ))), Loc));
 
       else
          Tag_Node :=
            Make_Attribute_Reference (Loc,
-             Prefix => New_Reference_To (Typ, Loc),
+             Prefix => New_Occurrence_Of (Typ, Loc),
              Attribute_Name => Name_Tag);
       end if;
 
@@ -128,27 +128,27 @@ package body Exp_Atag is
                 Make_Op_Eq (Loc,
                   Left_Opnd  => Make_Identifier (Loc, Name_uC),
                   Right_Opnd =>
-                    New_Reference_To (RTE (RE_POK_Procedure), Loc)),
+                    New_Occurrence_Of (RTE (RE_POK_Procedure), Loc)),
               Right_Opnd =>
                 Make_Or_Else (Loc,
                   Left_Opnd =>
                     Make_Op_Eq (Loc,
                       Left_Opnd => Make_Identifier (Loc, Name_uC),
                       Right_Opnd =>
-                        New_Reference_To
+                        New_Occurrence_Of
                           (RTE (RE_POK_Protected_Procedure), Loc)),
                   Right_Opnd =>
                     Make_Op_Eq (Loc,
                       Left_Opnd  => Make_Identifier (Loc, Name_uC),
                       Right_Opnd =>
-                        New_Reference_To
+                        New_Occurrence_Of
                           (RTE (RE_POK_Task_Procedure), Loc)))),
 
           Then_Statements =>
             New_List (
               Make_Assignment_Statement (Loc,
                 Name       => Make_Identifier (Loc, Name_uF),
-                Expression => New_Reference_To (Standard_True, Loc)),
+                Expression => New_Occurrence_Of (Standard_True, Loc)),
               Make_Simple_Return_Statement (Loc))));
    end Build_Common_Dispatching_Select_Statements;
 
@@ -183,7 +183,7 @@ package body Exp_Atag is
         Make_Object_Declaration (Loc,
           Defining_Identifier => Tag_Addr,
           Constant_Present    => True,
-          Object_Definition   => New_Reference_To (RTE (RE_Address), Loc),
+          Object_Definition   => New_Occurrence_Of (RTE (RE_Address), Loc),
           Expression          => Unchecked_Convert_To
                                    (RTE (RE_Address), Obj_Tag_Node)));
 
@@ -196,15 +196,15 @@ package body Exp_Atag is
         Make_Object_Declaration (Loc,
           Defining_Identifier => Obj_TSD,
           Constant_Present    => True,
-          Object_Definition   => New_Reference_To
+          Object_Definition   => New_Occurrence_Of
                                    (RTE (RE_Type_Specific_Data_Ptr), Loc),
-          Expression => Build_TSD (Loc, New_Reference_To (Tag_Addr, Loc))));
+          Expression => Build_TSD (Loc, New_Occurrence_Of (Tag_Addr, Loc))));
 
       Insert_Action (Related_Nod,
         Make_Object_Declaration (Loc,
           Defining_Identifier => Typ_TSD,
           Constant_Present    => True,
-          Object_Definition   => New_Reference_To
+          Object_Definition   => New_Occurrence_Of
                                    (RTE (RE_Type_Specific_Data_Ptr), Loc),
           Expression => Build_TSD (Loc,
                           Unchecked_Convert_To (RTE (RE_Address),
@@ -219,16 +219,16 @@ package body Exp_Atag is
             Make_Op_Subtract (Loc,
               Left_Opnd =>
                 Make_Selected_Component (Loc,
-                  Prefix        => New_Reference_To (Obj_TSD, Loc),
+                  Prefix        => New_Occurrence_Of (Obj_TSD, Loc),
                   Selector_Name =>
-                     New_Reference_To
+                     New_Occurrence_Of
                        (RTE_Record_Component (RE_Idepth), Loc)),
 
                Right_Opnd =>
                  Make_Selected_Component (Loc,
-                   Prefix        => New_Reference_To (Typ_TSD, Loc),
+                   Prefix        => New_Occurrence_Of (Typ_TSD, Loc),
                    Selector_Name =>
-                     New_Reference_To
+                     New_Occurrence_Of
                        (RTE_Record_Component (RE_Idepth), Loc)))));
 
       New_Node :=
@@ -244,9 +244,9 @@ package body Exp_Atag is
                 Make_Indexed_Component (Loc,
                   Prefix =>
                     Make_Selected_Component (Loc,
-                      Prefix        => New_Reference_To (Obj_TSD, Loc),
+                      Prefix        => New_Occurrence_Of (Obj_TSD, Loc),
                       Selector_Name =>
-                        New_Reference_To
+                        New_Occurrence_Of
                           (RTE_Record_Component (RE_Tags_Table), Loc)),
                   Expressions =>
                     New_List (New_Occurrence_Of (Index, Loc))),
@@ -265,7 +265,7 @@ package body Exp_Atag is
    begin
       return
         Make_Function_Call (Loc,
-          Name => New_Reference_To (RTE (RE_DT), Loc),
+          Name => New_Occurrence_Of (RTE (RE_DT), Loc),
           Parameter_Associations => New_List (
             Unchecked_Convert_To (RTE (RE_Tag), Tag_Node)));
    end Build_DT;
@@ -285,7 +285,7 @@ package body Exp_Atag is
             Build_TSD (Loc,
               Unchecked_Convert_To (RTE (RE_Address), Tag_Node)),
           Selector_Name =>
-            New_Reference_To
+            New_Occurrence_Of
               (RTE_Record_Component (RE_Access_Level), Loc));
    end Build_Get_Access_Level;
 
@@ -303,7 +303,7 @@ package body Exp_Atag is
           Prefix        =>
             Build_TSD (Loc, Unchecked_Convert_To (RTE (RE_Address), Tag_Node)),
           Selector_Name =>
-            New_Reference_To (RTE_Record_Component (RE_Alignment), Loc));
+            New_Occurrence_Of (RTE_Record_Component (RE_Alignment), Loc));
    end Build_Get_Alignment;
 
    ------------------------------------------
@@ -344,13 +344,13 @@ package body Exp_Atag is
                       Make_Expanded_Name (Loc,
                         Chars => Name_Op_Subtract,
                         Prefix =>
-                          New_Reference_To
+                          New_Occurrence_Of
                             (RTU_Entity (System_Storage_Elements), Loc),
                         Selector_Name =>
                           Make_Identifier (Loc, Name_Op_Subtract)),
                     Parameter_Associations => New_List (
                       Ctrl_Tag,
-                      New_Reference_To
+                      New_Occurrence_Of
                         (RTE (RE_DT_Predef_Prims_Offset), Loc)))))),
           Expressions =>
             New_List (Make_Integer_Literal (Loc, Position)));
@@ -421,14 +421,14 @@ package body Exp_Atag is
                       Make_Explicit_Dereference (Loc,
                         Unchecked_Convert_To
                           (Node (Last_Elmt (Access_Disp_Table (Typ))),
-                           New_Reference_To (Typ_Tag, Loc))),
+                           New_Occurrence_Of (Typ_Tag, Loc))),
                     Expressions =>
                        New_List (Make_Integer_Literal (Loc, Prim_Pos))),
 
                Expression =>
                  Unchecked_Convert_To (RTE (RE_Prim_Ptr),
                    Make_Attribute_Reference (Loc,
-                     Prefix => New_Reference_To (E, Loc),
+                     Prefix => New_Occurrence_Of (E, Loc),
                      Attribute_Name => Name_Unrestricted_Access))));
          end if;
 
@@ -459,12 +459,12 @@ package body Exp_Atag is
                   Make_Explicit_Dereference (Loc,
                     Unchecked_Convert_To
                       (Node (Last_Elmt (Access_Disp_Table (CPP_Typ))),
-                       New_Reference_To (Typ_Tag, Loc))),
+                       New_Occurrence_Of (Typ_Tag, Loc))),
                 Expression =>
                   Make_Explicit_Dereference (Loc,
                     Unchecked_Convert_To
                       (Node (Last_Elmt (Access_Disp_Table (CPP_Typ))),
-                       New_Reference_To (Parent_Tag, Loc)))));
+                       New_Occurrence_Of (Parent_Tag, Loc)))));
             exit;
          end if;
       end loop;
@@ -558,7 +558,7 @@ package body Exp_Atag is
                                       (Node
                                         (Last_Elmt
                                           (Access_Disp_Table (Iface))),
-                                       New_Reference_To (Typ_Tag, Loc))),
+                                       New_Occurrence_Of (Typ_Tag, Loc))),
                                 Expressions =>
                                    New_List
                                     (Make_Integer_Literal (Loc, Prim_Pos))),
@@ -566,7 +566,7 @@ package body Exp_Atag is
                             Expression =>
                               Unchecked_Convert_To (RTE (RE_Prim_Ptr),
                                 Make_Attribute_Reference (Loc,
-                                  Prefix => New_Reference_To (E, Loc),
+                                  Prefix => New_Occurrence_Of (E, Loc),
                                   Attribute_Name =>
                                     Name_Unrestricted_Access))));
                      end if;
@@ -588,12 +588,12 @@ package body Exp_Atag is
                               Make_Explicit_Dereference (Loc,
                                 Unchecked_Convert_To
                                  (Node (Last_Elmt (Access_Disp_Table (Iface))),
-                                  New_Reference_To (Typ_Tag, Loc))),
+                                  New_Occurrence_Of (Typ_Tag, Loc))),
                             Expression =>
                               Make_Explicit_Dereference (Loc,
                                 Unchecked_Convert_To
                                  (Node (Last_Elmt (Access_Disp_Table (Iface))),
-                                  New_Reference_To (Parent_Tag, Loc)))));
+                                  New_Occurrence_Of (Parent_Tag, Loc)))));
                         exit;
                      end if;
                   end loop;
@@ -630,7 +630,7 @@ package body Exp_Atag is
                      Prefix =>
                        Build_DT (Loc, New_Tag_Node),
                      Selector_Name =>
-                       New_Reference_To
+                       New_Occurrence_Of
                          (RTE_Record_Component (RE_Prims_Ptr), Loc)),
                  Discrete_Range =>
                    Make_Range (Loc,
@@ -644,7 +644,7 @@ package body Exp_Atag is
                      Prefix =>
                        Build_DT (Loc, Old_Tag_Node),
                      Selector_Name =>
-                       New_Reference_To
+                       New_Occurrence_Of
                          (RTE_Record_Component (RE_Prims_Ptr), Loc)),
                  Discrete_Range =>
                    Make_Range (Loc,
@@ -728,7 +728,7 @@ package body Exp_Atag is
             Build_TSD (Loc,
               Unchecked_Convert_To (RTE (RE_Address), Tag_Node)),
           Selector_Name =>
-            New_Reference_To
+            New_Occurrence_Of
               (RTE_Record_Component (RE_Transportable), Loc));
    end Build_Get_Transportable;
 
@@ -754,7 +754,7 @@ package body Exp_Atag is
                         New_Tag_Node)))),
               Discrete_Range => Make_Range (Loc,
                 Make_Integer_Literal (Loc, Uint_1),
-                New_Reference_To (RTE (RE_Max_Predef_Prims), Loc))),
+                New_Occurrence_Of (RTE (RE_Max_Predef_Prims), Loc))),
 
           Expression =>
             Make_Slice (Loc,
@@ -767,7 +767,7 @@ package body Exp_Atag is
               Discrete_Range =>
                 Make_Range (Loc,
                   Make_Integer_Literal (Loc, 1),
-                  New_Reference_To (RTE (RE_Max_Predef_Prims), Loc))));
+                  New_Occurrence_Of (RTE (RE_Max_Predef_Prims), Loc))));
    end Build_Inherit_Predefined_Prims;
 
    -------------------------
@@ -793,12 +793,12 @@ package body Exp_Atag is
                 Make_Expanded_Name (Loc,
                   Chars         => Name_Op_Subtract,
                   Prefix        =>
-                    New_Reference_To
+                    New_Occurrence_Of
                       (RTU_Entity (System_Storage_Elements), Loc),
                   Selector_Name => Make_Identifier (Loc, Name_Op_Subtract)),
               Parameter_Associations => New_List (
                 Unchecked_Convert_To (RTE (RE_Address), Tag_Node),
-                New_Reference_To
+                New_Occurrence_Of
                   (RTE (RE_DT_Offset_To_Top_Offset), Loc)))));
    end Build_Offset_To_Top;
 
@@ -869,12 +869,12 @@ package body Exp_Atag is
                 Build_TSD (Loc,
                   Unchecked_Convert_To (RTE (RE_Address), Tag_Node)),
               Selector_Name =>
-                New_Reference_To
+                New_Occurrence_Of
                   (RTE_Record_Component (RE_Size_Func), Loc)),
           Expression =>
             Unchecked_Convert_To (RTE (RE_Size_Ptr),
               Make_Attribute_Reference (Loc,
-                Prefix => New_Reference_To (Size_Func, Loc),
+                Prefix => New_Occurrence_Of (Size_Func, Loc),
                 Attribute_Name => Name_Unrestricted_Access)));
    end Build_Set_Size_Function;
 
@@ -896,12 +896,12 @@ package body Exp_Atag is
                   Make_Expanded_Name (Loc,
                     Chars         => Name_Op_Subtract,
                     Prefix        =>
-                      New_Reference_To
+                      New_Occurrence_Of
                         (RTU_Entity (System_Storage_Elements), Loc),
                     Selector_Name => Make_Identifier (Loc, Name_Op_Subtract)),
                 Parameter_Associations => New_List (
                   Unchecked_Convert_To (RTE (RE_Address), Iface_Tag),
-                  New_Reference_To
+                  New_Occurrence_Of
                     (RTE (RE_DT_Offset_To_Top_Offset), Loc))))),
           Offset_Value);
    end Build_Set_Static_Offset_To_Top;
@@ -923,13 +923,13 @@ package body Exp_Atag is
                   Make_Expanded_Name (Loc,
                     Chars => Name_Op_Subtract,
                     Prefix =>
-                      New_Reference_To
+                      New_Occurrence_Of
                         (RTU_Entity (System_Storage_Elements), Loc),
                     Selector_Name => Make_Identifier (Loc, Name_Op_Subtract)),
 
                 Parameter_Associations => New_List (
                   Tag_Node_Addr,
-                  New_Reference_To
+                  New_Occurrence_Of
                     (RTE (RE_DT_Typeinfo_Ptr_Size), Loc))))));
    end Build_TSD;
 
index 2e370ac..4b4ede7 100644 (file)
@@ -272,7 +272,7 @@ package body Exp_Attr is
             Index :=
               Make_Defining_Identifier (Loc, New_External_Name ('J', N));
 
-            Append (New_Reference_To (Index, Loc), Index_List);
+            Append (New_Occurrence_Of (Index, Loc), Index_List);
 
             return New_List (
               Make_Implicit_Loop_Statement (Nod,
@@ -309,7 +309,7 @@ package body Exp_Attr is
           Defining_Identifier => Make_Defining_Identifier (Loc, Name_uA),
           In_Present          => True,
           Out_Present         => False,
-          Parameter_Type      => New_Reference_To (A_Type, Loc)));
+          Parameter_Type      => New_Occurrence_Of (A_Type, Loc)));
 
       --  Build body
 
@@ -575,7 +575,7 @@ package body Exp_Attr is
 
       Fnm :=
         Make_Selected_Component (Loc,
-          Prefix        => New_Reference_To (RTE (Pkg), Loc),
+          Prefix        => New_Occurrence_Of (RTE (Pkg), Loc),
           Selector_Name => Make_Identifier (Loc, Nam));
 
       --  The generated call is given the provided set of parameters, and then
@@ -912,7 +912,7 @@ package body Exp_Attr is
                     Make_Op_Gt (Loc,
                       Left_Opnd  =>
                         Make_Attribute_Reference (Loc,
-                          Prefix         => New_Reference_To (Array_Nam, Loc),
+                          Prefix         => New_Occurrence_Of (Array_Nam, Loc),
                           Attribute_Name => Name_Length,
                           Expressions    => New_List (
                             Make_Integer_Literal (Loc, Dim))),
@@ -1000,13 +1000,13 @@ package body Exp_Attr is
         Make_Object_Declaration (Loc,
           Defining_Identifier => Temp_Id,
           Constant_Present    => True,
-          Object_Definition   => New_Reference_To (Typ, Loc),
+          Object_Definition   => New_Occurrence_Of (Typ, Loc),
           Expression          => Relocate_Node (Pref));
       Append_To (Decls, Temp_Decl);
 
       --  Step 4: Analyze all bits
 
-      Rewrite (N, New_Reference_To (Temp_Id, Loc));
+      Rewrite (N, New_Occurrence_Of (Temp_Id, Loc));
 
       Installed := Current_Scope = Scope (Loop_Id);
 
@@ -1835,7 +1835,7 @@ package body Exp_Attr is
          then
             Rewrite (N,
               Make_Function_Call (Loc,
-                Name => New_Reference_To (RTE (RE_Base_Address), Loc),
+                Name => New_Occurrence_Of (RTE (RE_Base_Address), Loc),
                 Parameter_Associations => New_List (
                   Relocate_Node (N))));
             Analyze (N);
@@ -1884,7 +1884,7 @@ package body Exp_Attr is
             else
                New_Node :=
                  Make_Function_Call (Loc,
-                   Name => New_Reference_To (RTE (RE_Get_Alignment), Loc),
+                   Name => New_Occurrence_Of (RTE (RE_Get_Alignment), Loc),
                    Parameter_Associations => New_List (New_Node));
             end if;
 
@@ -2126,7 +2126,7 @@ package body Exp_Attr is
 
             Rewrite (N,
               Make_Function_Call (Loc,
-                Name => New_Reference_To (RTE (RE_Get_Version_String), Loc),
+                Name => New_Occurrence_Of (RTE (RE_Get_Version_String), Loc),
                 Parameter_Associations => New_List (
                   New_Occurrence_Of (E, Loc))));
          end if;
@@ -2164,11 +2164,11 @@ package body Exp_Attr is
             Rewrite (N,
               Make_Function_Call (Loc,
                 Name =>
-                  New_Reference_To (RTE (RE_Callable), Loc),
+                  New_Occurrence_Of (RTE (RE_Callable), Loc),
                 Parameter_Associations => New_List (
                   Make_Unchecked_Type_Conversion (Loc,
                     Subtype_Mark =>
-                      New_Reference_To (RTE (RO_ST_Task_Id), Loc),
+                      New_Occurrence_Of (RTE (RO_ST_Task_Id), Loc),
                     Expression =>
                       Make_Selected_Component (Loc,
                         Prefix =>
@@ -2206,12 +2206,12 @@ package body Exp_Attr is
             case Corresponding_Runtime_Package (Conctype) is
                when System_Tasking_Protected_Objects_Entries =>
                   Name :=
-                    New_Reference_To
+                    New_Occurrence_Of
                       (RTE (RE_Protected_Entry_Caller), Loc);
 
                when System_Tasking_Protected_Objects_Single_Entry =>
                   Name :=
-                    New_Reference_To
+                    New_Occurrence_Of
                       (RTE (RE_Protected_Single_Entry_Caller), Loc);
 
                when others =>
@@ -2223,7 +2223,7 @@ package body Exp_Attr is
                 Make_Function_Call (Loc,
                   Name => Name,
                   Parameter_Associations => New_List (
-                    New_Reference_To
+                    New_Occurrence_Of
                       (Find_Protection_Object (Current_Scope), Loc)))));
 
          --  Task case
@@ -2255,7 +2255,7 @@ package body Exp_Attr is
               Unchecked_Convert_To (Id_Kind,
                 Make_Function_Call (Loc,
                   Name =>
-                    New_Reference_To (RTE (RE_Task_Entry_Caller), Loc),
+                    New_Occurrence_Of (RTE (RE_Task_Entry_Caller), Loc),
                   Parameter_Associations => New_List (
                     Make_Integer_Literal (Loc,
                       Intval => Int (Nest_Depth))))));
@@ -2421,7 +2421,7 @@ package body Exp_Attr is
                                and then Is_Limited_Type (Ptyp));
                end if;
 
-               Rewrite (N, New_Reference_To (Boolean_Literals (Res), Loc));
+               Rewrite (N, New_Occurrence_Of (Boolean_Literals (Res), Loc));
             end;
 
          --  Prefix is not an entity name. These are also cases where we can
@@ -2433,7 +2433,7 @@ package body Exp_Attr is
 
          else
             Rewrite (N,
-              New_Reference_To (
+              New_Occurrence_Of (
                 Boolean_Literals (
                   not Is_Variable (Pref)
                     or else
@@ -2503,26 +2503,26 @@ package body Exp_Attr is
          if Is_Protected_Type (Conctyp) then
             case Corresponding_Runtime_Package (Conctyp) is
                when System_Tasking_Protected_Objects_Entries =>
-                  Name := New_Reference_To (RTE (RE_Protected_Count), Loc);
+                  Name := New_Occurrence_Of (RTE (RE_Protected_Count), Loc);
 
                   Call :=
                     Make_Function_Call (Loc,
                       Name => Name,
                       Parameter_Associations => New_List (
-                        New_Reference_To
+                        New_Occurrence_Of
                           (Find_Protection_Object (Current_Scope), Loc),
                         Entry_Index_Expression
                           (Loc, Entry_Id, Index, Scope (Entry_Id))));
 
                when System_Tasking_Protected_Objects_Single_Entry =>
                   Name :=
-                    New_Reference_To (RTE (RE_Protected_Count_Entry), Loc);
+                    New_Occurrence_Of (RTE (RE_Protected_Count_Entry), Loc);
 
                   Call :=
                     Make_Function_Call (Loc,
                       Name => Name,
                       Parameter_Associations => New_List (
-                        New_Reference_To
+                        New_Occurrence_Of
                           (Find_Protection_Object (Current_Scope), Loc)));
 
                when others =>
@@ -2534,7 +2534,7 @@ package body Exp_Attr is
          else
             Call :=
               Make_Function_Call (Loc,
-                Name => New_Reference_To (RTE (RE_Task_Count), Loc),
+                Name => New_Occurrence_Of (RTE (RE_Task_Count), Loc),
                 Parameter_Associations => New_List (
                   Entry_Index_Expression (Loc,
                     Entry_Id, Index, Scope (Entry_Id))));
@@ -2802,7 +2802,7 @@ package body Exp_Attr is
                  Left_Opnd =>
                    Make_Function_Call (Loc,
                      Name =>
-                       New_Reference_To (TSS (Btyp, TSS_Rep_To_Pos), Loc),
+                       New_Occurrence_Of (TSS (Btyp, TSS_Rep_To_Pos), Loc),
                      Parameter_Associations => New_List (
                        Relocate_Node (Duplicate_Subexpr (Expr)),
                          New_Occurrence_Of (Standard_False, Loc))),
@@ -2834,7 +2834,7 @@ package body Exp_Attr is
       begin
          Rewrite (N,
            Make_Function_Call (Loc,
-             Name => New_Reference_To (RTE (RE_External_Tag), Loc),
+             Name => New_Occurrence_Of (RTE (RE_External_Tag), Loc),
              Parameter_Associations => New_List (
                Make_Attribute_Reference (Loc,
                  Attribute_Name => Name_Tag,
@@ -2859,7 +2859,7 @@ package body Exp_Attr is
             Rewrite (N,
               Make_Attribute_Reference (Loc,
                 Attribute_Name => Name_First,
-                Prefix => New_Reference_To (Get_Index_Subtype (N), Loc)));
+                Prefix => New_Occurrence_Of (Get_Index_Subtype (N), Loc)));
             Analyze_And_Resolve (N, Typ);
 
          elsif Is_Access_Type (Ptyp) then
@@ -2970,17 +2970,17 @@ package body Exp_Attr is
          Rewrite (N,
            Convert_To (Typ,
              Make_Function_Call (Loc,
-               Name => New_Reference_To (RTE (RE_Fore), Loc),
+               Name => New_Occurrence_Of (RTE (RE_Fore), Loc),
 
                Parameter_Associations => New_List (
                  Convert_To (Universal_Real,
                    Make_Attribute_Reference (Loc,
-                     Prefix => New_Reference_To (Ptyp, Loc),
+                     Prefix => New_Occurrence_Of (Ptyp, Loc),
                      Attribute_Name => Name_First)),
 
                  Convert_To (Universal_Real,
                    Make_Attribute_Reference (Loc,
-                     Prefix => New_Reference_To (Ptyp, Loc),
+                     Prefix => New_Occurrence_Of (Ptyp, Loc),
                      Attribute_Name => Name_Last))))));
 
          Analyze_And_Resolve (N, Typ);
@@ -3087,7 +3087,7 @@ package body Exp_Attr is
       begin
          Rewrite (N,
            Make_Attribute_Reference (Loc,
-             Prefix => New_Reference_To (Ptyp, Loc),
+             Prefix => New_Occurrence_Of (Ptyp, Loc),
              Attribute_Name => Name_Image,
              Expressions => New_List (Relocate_Node (Pref))));
 
@@ -3273,7 +3273,7 @@ package body Exp_Attr is
                           Expressions => New_List (
                             Relocate_Node (Duplicate_Subexpr (Strm)))),
                         Make_Attribute_Reference (Loc,
-                          Prefix => New_Reference_To (P_Type, Loc),
+                          Prefix => New_Occurrence_Of (P_Type, Loc),
                           Attribute_Name => Name_Tag)));
 
                   Dnn := Make_Temporary (Loc, 'D', Expr);
@@ -3439,7 +3439,7 @@ package body Exp_Attr is
             Rewrite (N,
               Make_Attribute_Reference (Loc,
                 Attribute_Name => Name_Last,
-                Prefix => New_Reference_To (Get_Index_Subtype (N), Loc)));
+                Prefix => New_Occurrence_Of (Get_Index_Subtype (N), Loc)));
             Analyze_And_Resolve (N, Typ);
 
          elsif Is_Access_Type (Ptyp) then
@@ -3590,7 +3590,7 @@ package body Exp_Attr is
                Rewrite (N,
                  Make_Attribute_Reference (Loc,
                    Attribute_Name => Name_Range_Length,
-                   Prefix => New_Reference_To (Ityp, Loc)));
+                   Prefix => New_Occurrence_Of (Ityp, Loc)));
                Analyze_And_Resolve (N, Typ);
             end if;
 
@@ -3810,13 +3810,13 @@ package body Exp_Attr is
                   Convert_To (Universal_Integer,
                     Make_Function_Call (Loc,
                       Name                   =>
-                        New_Reference_To
+                        New_Occurrence_Of
                           (RTE (RE_Header_Size_With_Padding), Loc),
 
                       Parameter_Associations => New_List (
                         Make_Attribute_Reference (Loc,
                           Prefix         =>
-                            New_Reference_To (Ptyp, Loc),
+                            New_Occurrence_Of (Ptyp, Loc),
                           Attribute_Name => Name_Alignment))))));
 
             --  Add a conversion to the target type
@@ -3824,7 +3824,7 @@ package body Exp_Attr is
             if not Conversion_Added then
                Rewrite (Attr,
                  Make_Type_Conversion (Loc,
-                   Subtype_Mark => New_Reference_To (Typ, Loc),
+                   Subtype_Mark => New_Occurrence_Of (Typ, Loc),
                    Expression   => Relocate_Node (Attr)));
             end if;
 
@@ -4370,7 +4370,7 @@ package body Exp_Attr is
                  Convert_To (Typ,
                    Make_Function_Call (Loc,
                      Name =>
-                       New_Reference_To (TSS (Etyp, TSS_Rep_To_Pos), Loc),
+                       New_Occurrence_Of (TSS (Etyp, TSS_Rep_To_Pos), Loc),
                      Parameter_Associations => Exprs)));
 
                Analyze_And_Resolve (N, Typ);
@@ -4472,7 +4472,7 @@ package body Exp_Attr is
                         Right_Opnd =>
                           Make_Function_Call (Loc,
                             Name =>
-                              New_Reference_To
+                              New_Occurrence_Of
                                (TSS (Etyp, TSS_Rep_To_Pos), Loc),
 
                             Parameter_Associations =>
@@ -4495,14 +4495,14 @@ package body Exp_Attr is
                Rewrite (N,
                  Make_Indexed_Component (Loc,
                    Prefix =>
-                     New_Reference_To
+                     New_Occurrence_Of
                        (Enum_Pos_To_Rep (Etyp), Loc),
                    Expressions => New_List (
                      Make_Op_Subtract (Loc,
                     Left_Opnd =>
                       Make_Function_Call (Loc,
                         Name =>
-                          New_Reference_To
+                          New_Occurrence_Of
                             (TSS (Etyp, TSS_Rep_To_Pos), Loc),
                           Parameter_Associations => Exprs),
                     Right_Opnd => Make_Integer_Literal (Loc, 1)))));
@@ -4608,7 +4608,7 @@ package body Exp_Attr is
                         Make_Selected_Component (Loc,
                           Prefix =>
                             Unchecked_Convert_To (New_Itype,
-                              New_Reference_To
+                              New_Occurrence_Of
                                 (First_Entity
                                   (Protected_Body_Subprogram (Subprg)),
                                  Loc)),
@@ -4624,7 +4624,7 @@ package body Exp_Attr is
                  Make_Attribute_Reference (Loc,
                     Prefix =>
                       Make_Selected_Component (Loc,
-                        Prefix => New_Reference_To
+                        Prefix => New_Occurrence_Of
                                     (First_Entity
                                       (Protected_Body_Subprogram (Subprg)),
                                        Loc),
@@ -4636,10 +4636,10 @@ package body Exp_Attr is
 
             if Number_Entries (Conctyp) = 0 then
                RT_Subprg_Name :=
-                 New_Reference_To (RTE (RE_Get_Ceiling), Loc);
+                 New_Occurrence_Of (RTE (RE_Get_Ceiling), Loc);
             else
                RT_Subprg_Name :=
-                 New_Reference_To (RTE (RO_PE_Get_Ceiling), Loc);
+                 New_Occurrence_Of (RTE (RO_PE_Get_Ceiling), Loc);
             end if;
 
             Call :=
@@ -5044,8 +5044,8 @@ package body Exp_Attr is
       when Attribute_Simple_Storage_Pool =>
          Rewrite (N,
            Make_Type_Conversion (Loc,
-             Subtype_Mark => New_Reference_To (Etype (N), Loc),
-             Expression   => New_Reference_To (Entity (N), Loc)));
+             Subtype_Mark => New_Occurrence_Of (Etype (N), Loc),
+             Expression   => New_Occurrence_Of (Entity (N), Loc)));
          Analyze_And_Resolve (N, Typ);
 
       ----------
@@ -5151,7 +5151,7 @@ package body Exp_Attr is
 
             New_Node :=
               Make_Function_Call (Loc,
-                Name => New_Reference_To
+                Name => New_Occurrence_Of
                   (Find_Prim_Op (Ptyp, Name_uSize), Loc),
                 Parameter_Associations => New_List (Pref));
 
@@ -5298,8 +5298,8 @@ package body Exp_Attr is
       when Attribute_Storage_Pool =>
          Rewrite (N,
            Make_Type_Conversion (Loc,
-             Subtype_Mark => New_Reference_To (Etype (N), Loc),
-             Expression   => New_Reference_To (Entity (N), Loc)));
+             Subtype_Mark => New_Occurrence_Of (Etype (N), Loc),
+             Expression   => New_Occurrence_Of (Entity (N), Loc)));
          Analyze_And_Resolve (N, Typ);
 
       ------------------
@@ -5322,12 +5322,12 @@ package body Exp_Attr is
             if Present (Storage_Size_Variable (Root_Type (Ptyp))) then
                Rewrite (N,
                  Make_Attribute_Reference (Loc,
-                   Prefix => New_Reference_To (Typ, Loc),
+                   Prefix => New_Occurrence_Of (Typ, Loc),
                    Attribute_Name => Name_Max,
                    Expressions => New_List (
                      Make_Integer_Literal (Loc, 0),
                      Convert_To (Typ,
-                       New_Reference_To
+                       New_Occurrence_Of
                          (Storage_Size_Variable (Root_Type (Ptyp)), Loc)))));
 
             elsif Present (Associated_Storage_Pool (Root_Type (Ptyp))) then
@@ -5382,10 +5382,10 @@ package body Exp_Attr is
                     OK_Convert_To (Typ,
                       Make_Function_Call (Loc,
                         Name =>
-                          New_Reference_To (Alloc_Op, Loc),
+                          New_Occurrence_Of (Alloc_Op, Loc),
 
                         Parameter_Associations => New_List (
-                          New_Reference_To
+                          New_Occurrence_Of
                             (Associated_Storage_Pool
                                (Root_Type (Ptyp)), Loc)))));
                end if;
@@ -5427,7 +5427,7 @@ package body Exp_Attr is
                        New_List (
                          Make_Function_Call (Loc,
                            Name =>
-                             New_Reference_To (RTE (RE_Self), Loc))))));
+                             New_Occurrence_Of (RTE (RE_Self), Loc))))));
 
             elsif not Is_Entity_Name (Pref)
               or else not Is_Type (Entity (Pref))
@@ -5461,7 +5461,7 @@ package body Exp_Attr is
                        RTE (RE_Adjust_Storage_Size), Loc),
                      Parameter_Associations =>
                        New_List (
-                         New_Reference_To (
+                         New_Occurrence_Of (
                            Storage_Size_Variable (Ptyp), Loc)))));
             else
                --  Get system default
@@ -5521,7 +5521,7 @@ package body Exp_Attr is
                         Right_Opnd =>
                           Make_Function_Call (Loc,
                             Name =>
-                              New_Reference_To
+                              New_Occurrence_Of
                                (TSS (Etyp, TSS_Rep_To_Pos), Loc),
 
                             Parameter_Associations =>
@@ -5543,14 +5543,14 @@ package body Exp_Attr is
                Rewrite (N,
                  Make_Indexed_Component (Loc,
                    Prefix =>
-                     New_Reference_To
+                     New_Occurrence_Of
                        (Enum_Pos_To_Rep (Etyp), Loc),
                    Expressions => New_List (
                      Make_Op_Add (Loc,
                        Left_Opnd =>
                          Make_Function_Call (Loc,
                            Name =>
-                             New_Reference_To
+                             New_Occurrence_Of
                                (TSS (Etyp, TSS_Rep_To_Pos), Loc),
                            Parameter_Associations => Exprs),
                        Right_Opnd => Make_Integer_Literal (Loc, 1)))));
@@ -5621,7 +5621,7 @@ package body Exp_Attr is
             if Tagged_Type_Expansion then
                Rewrite (N,
                  Unchecked_Convert_To (RTE (RE_Tag),
-                   New_Reference_To
+                   New_Occurrence_Of
                      (Node (First_Elmt (Access_Disp_Table (Ttyp))), Loc)));
                Analyze_And_Resolve (N, RTE (RE_Tag));
             end if;
@@ -5658,7 +5658,7 @@ package body Exp_Attr is
               Make_Selected_Component (Loc,
                 Prefix => Relocate_Node (Pref),
                 Selector_Name =>
-                  New_Reference_To (First_Tag_Component (Ttyp), Loc)));
+                  New_Occurrence_Of (First_Tag_Component (Ttyp), Loc)));
             Analyze_And_Resolve (N, RTE (RE_Tag));
          end if;
       end Tag;
@@ -5683,11 +5683,11 @@ package body Exp_Attr is
             Rewrite (N,
               Make_Function_Call (Loc,
                 Name =>
-                  New_Reference_To (RTE (RE_Terminated), Loc),
+                  New_Occurrence_Of (RTE (RE_Terminated), Loc),
                 Parameter_Associations => New_List (
                   Make_Unchecked_Type_Conversion (Loc,
                     Subtype_Mark =>
-                      New_Reference_To (RTE (RO_ST_Task_Id), Loc),
+                      New_Occurrence_Of (RTE (RO_ST_Task_Id), Loc),
                     Expression =>
                       Make_Selected_Component (Loc,
                         Prefix =>
@@ -5871,7 +5871,7 @@ package body Exp_Attr is
                            Right_Opnd =>
                              Make_Function_Call (Loc,
                                Name =>
-                                 New_Reference_To
+                                 New_Occurrence_Of
                                    (TSS (Etyp, TSS_Rep_To_Pos), Loc),
                                Parameter_Associations => New_List (
                                  Rep_Node,
@@ -5881,7 +5881,7 @@ package body Exp_Attr is
             else
                Rewrite (N,
                  Make_Indexed_Component (Loc,
-                   Prefix => New_Reference_To (Enum_Pos_To_Rep (Etyp), Loc),
+                   Prefix => New_Occurrence_Of (Enum_Pos_To_Rep (Etyp), Loc),
                    Expressions => New_List (
                      Convert_To (Standard_Integer,
                        Relocate_Node (First (Exprs))))));
@@ -6081,7 +6081,7 @@ package body Exp_Attr is
                 Left_Opnd =>
                   Make_Function_Call (Loc,
                     Name =>
-                      New_Reference_To (TSS (Btyp, TSS_Rep_To_Pos), Loc),
+                      New_Occurrence_Of (TSS (Btyp, TSS_Rep_To_Pos), Loc),
                     Parameter_Associations => New_List (
                       Pref,
                       New_Occurrence_Of (Standard_False, Loc))),
@@ -6379,7 +6379,7 @@ package body Exp_Attr is
              Expressions    => New_List (
                Make_Function_Call (Loc,
                  Name =>
-                   New_Reference_To (RTE (RE_Wide_String_To_String), Loc),
+                   New_Occurrence_Of (RTE (RE_Wide_String_To_String), Loc),
 
                  Parameter_Associations => New_List (
                    Relocate_Node (First (Exprs)),
@@ -6417,7 +6417,8 @@ package body Exp_Attr is
              Expressions    => New_List (
                Make_Function_Call (Loc,
                  Name =>
-                   New_Reference_To (RTE (RE_Wide_Wide_String_To_String), Loc),
+                   New_Occurrence_Of
+                     (RTE (RE_Wide_Wide_String_To_String), Loc),
 
                  Parameter_Associations => New_List (
                    Relocate_Node (First (Exprs)),
@@ -6734,7 +6735,7 @@ package body Exp_Attr is
                  Right_Opnd =>
                    Make_Attribute_Reference (Loc,
                      Prefix =>
-                       New_Reference_To (Base_Type (Etype (Prefix (N))), Loc),
+                       New_Occurrence_Of (Base_Type (Etype (Prefix (N))), Loc),
                      Attribute_Name => Cnam)),
              Reason => CE_Overflow_Check_Failed));
       end if;
@@ -6809,7 +6810,7 @@ package body Exp_Attr is
 
             LHS :=
               Make_Indexed_Component (Loc,
-                Prefix      => New_Reference_To (Temp, Loc),
+                Prefix      => New_Occurrence_Of (Temp, Loc),
                 Expressions => Exprs);
 
          --  A record component update appears in the following form:
@@ -6824,7 +6825,7 @@ package body Exp_Attr is
          else pragma Assert (Is_Record_Type (Typ));
             LHS :=
               Make_Selected_Component (Loc,
-                Prefix        => New_Reference_To (Temp, Loc),
+                Prefix        => New_Occurrence_Of (Temp, Loc),
                 Selector_Name => Relocate_Node (Comp));
          end if;
 
@@ -6876,9 +6877,10 @@ package body Exp_Attr is
                Make_Assignment_Statement (Loc,
                  Name       =>
                    Make_Indexed_Component (Loc,
-                     Prefix      => New_Reference_To (Temp, Loc),
+                     Prefix      => New_Occurrence_Of (Temp, Loc),
                      Expressions => New_List (
-                       Convert_To (Index_Typ, New_Reference_To (Index, Loc)))),
+                       Convert_To (Index_Typ,
+                         New_Occurrence_Of (Index, Loc)))),
                  Expression => Relocate_Node (Expr))),
 
              End_Label        => Empty));
@@ -6908,7 +6910,7 @@ package body Exp_Attr is
       Insert_Action (N,
         Make_Object_Declaration (Loc,
           Defining_Identifier => Temp,
-          Object_Definition   => New_Reference_To (Typ, Loc),
+          Object_Definition   => New_Occurrence_Of (Typ, Loc),
           Expression          => Relocate_Node (Pref)));
 
       --  Process the update aggregate
@@ -6932,7 +6934,7 @@ package body Exp_Attr is
 
       --  The attribute is replaced by a reference to the anonymous object
 
-      Rewrite (N, New_Reference_To (Temp, Loc));
+      Rewrite (N, New_Occurrence_Of (Temp, Loc));
       Analyze (N);
    end Expand_Update_Attribute;
 
index 3b8d05d..c871327 100644 (file)
@@ -220,7 +220,7 @@ package body Exp_Ch13 is
                   Assign :=
                     Make_Assignment_Statement (Loc,
                       Name =>
-                        New_Reference_To (Storage_Size_Variable (Ent), Loc),
+                        New_Occurrence_Of (Storage_Size_Variable (Ent), Loc),
                       Expression =>
                         Convert_To (RTE (RE_Size_Type), Expression (N)));
 
@@ -260,7 +260,7 @@ package body Exp_Ch13 is
                     Make_Object_Declaration (Loc,
                       Defining_Identifier => V,
                       Object_Definition  =>
-                        New_Reference_To (RTE (RE_Storage_Offset), Loc),
+                        New_Occurrence_Of (RTE (RE_Storage_Offset), Loc),
                       Expression =>
                         Convert_To (RTE (RE_Storage_Offset), Expression (N))));
 
@@ -344,11 +344,11 @@ package body Exp_Ch13 is
               Make_Object_Declaration (Loc,
                 Defining_Identifier => Temp_Id,
                 Object_Definition =>
-                  New_Reference_To (Expr_Typ, Loc),
+                  New_Occurrence_Of (Expr_Typ, Loc),
                 Expression =>
                   Relocate_Node (Expr)));
 
-            New_Expr := New_Reference_To (Temp_Id, Loc);
+            New_Expr := New_Occurrence_Of (Temp_Id, Loc);
             Set_Etype (New_Expr, Expr_Typ);
 
             Set_Expression (N, New_Expr);
@@ -668,7 +668,7 @@ package body Exp_Ch13 is
 
          AtM_Nod :=
            Make_Attribute_Definition_Clause (Loc,
-             Name       => New_Reference_To (Base_Type (Rectype), Loc),
+             Name       => New_Occurrence_Of (Base_Type (Rectype), Loc),
              Chars      => Name_Alignment,
              Expression => Make_Integer_Literal (Loc, Mod_Val));
 
index 2abbd25..0aa7878 100644 (file)
@@ -574,9 +574,9 @@ package body Exp_Ch2 is
           Prefix =>
             Make_Explicit_Dereference (Loc,
               Unchecked_Convert_To (Parm_Type,
-                New_Reference_To (Addr_Ent, Loc))),
+                New_Occurrence_Of (Addr_Ent, Loc))),
           Selector_Name =>
-            New_Reference_To (Entry_Component (Ent_Formal), Loc));
+            New_Occurrence_Of (Entry_Component (Ent_Formal), Loc));
 
       --  For all types of parameters, the constructed parameter record object
       --  contains a pointer to the parameter. Thus we must dereference them to
index ec5de9e..6cd4636 100644 (file)
@@ -629,7 +629,7 @@ package body Exp_Ch3 is
             Index :=
               Make_Defining_Identifier (Loc, New_External_Name ('J', N));
 
-            Append (New_Reference_To (Index, Loc), Index_List);
+            Append (New_Occurrence_Of (Index, Loc), Index_List);
 
             return New_List (
               Make_Implicit_Loop_Statement (Nod,
@@ -874,7 +874,7 @@ package body Exp_Ch3 is
             Index :=
               Make_Defining_Identifier (Loc, New_External_Name ('J', N));
 
-            Append (New_Reference_To (Index, Loc), Index_List);
+            Append (New_Occurrence_Of (Index, Loc), Index_List);
 
             return New_List (
               Make_Implicit_Loop_Statement (Nod,
@@ -1019,7 +1019,7 @@ package body Exp_Ch3 is
                    Expression =>
                      Make_Function_Call (Loc,
                        Name =>
-                         New_Reference_To (Enclosing_Func_Id,  Loc),
+                         New_Occurrence_Of (Enclosing_Func_Id,  Loc),
                        Parameter_Associations =>
                          Actuals_List));
 
@@ -1027,7 +1027,7 @@ package body Exp_Ch3 is
                Return_Node :=
                  Make_Simple_Return_Statement (Loc,
                    Expression =>
-                     New_Reference_To (Standard_False, Loc));
+                     New_Occurrence_Of (Standard_False, Loc));
             end if;
 
             Set_Statements (Case_Alt_Node, New_List (Return_Node));
@@ -1041,7 +1041,7 @@ package body Exp_Ch3 is
          Return_Node :=
            Make_Simple_Return_Statement (Loc,
              Expression =>
-               New_Reference_To (Standard_True, Loc));
+               New_Occurrence_Of (Standard_True, Loc));
 
          Set_Statements (Case_Alt_Node, New_List (Return_Node));
          Append (Case_Alt_Node, Alt_List);
@@ -1079,7 +1079,7 @@ package body Exp_Ch3 is
 
          Set_Parameter_Specifications (Spec_Node, Parameter_List);
          Set_Result_Definition (Spec_Node,
-                                New_Reference_To (Standard_Boolean,  Loc));
+                                New_Occurrence_Of (Standard_Boolean,  Loc));
          Set_Specification (Body_Node, Spec_Node);
          Set_Declarations (Body_Node, New_List);
 
@@ -1229,7 +1229,7 @@ package body Exp_Ch3 is
               Make_Parameter_Specification (Loc,
                   Defining_Identifier => Formal,
                 Parameter_Type =>
-                  New_Reference_To (Formal_Type, Loc));
+                  New_Occurrence_Of (Formal_Type, Loc));
             Append (Param_Spec_Node, Parameter_List);
             Next_Discriminant (D);
          end loop;
@@ -1622,7 +1622,7 @@ package body Exp_Ch3 is
                if Nkind (Arg) = N_Identifier
                   and then Ekind (Entity (Arg)) = E_Discriminant
                then
-                  Arg := New_Reference_To (Discriminal (Entity (Arg)), Loc);
+                  Arg := New_Occurrence_Of (Discriminal (Entity (Arg)), Loc);
 
                --  Otherwise make a copy of the default expression. Note that
                --  we use the current Sloc for this, because we do not want the
@@ -1872,11 +1872,11 @@ package body Exp_Ch3 is
                     Prefix        =>
                       New_Copy_Tree (Lhs, New_Scope => Proc_Id),
                     Selector_Name =>
-                      New_Reference_To (First_Tag_Component (Typ), N_Loc)),
+                      New_Occurrence_Of (First_Tag_Component (Typ), N_Loc)),
 
                 Expression =>
                   Unchecked_Convert_To (RTE (RE_Tag),
-                    New_Reference_To
+                    New_Occurrence_Of
                       (Node
                         (First_Elmt
                           (Access_Disp_Table (Underlying_Type (Typ)))),
@@ -1937,7 +1937,7 @@ package body Exp_Ch3 is
                   D_Loc := Sloc (D);
                   Append_List_To (Statement_List,
                     Build_Assignment (D,
-                      New_Reference_To (Discriminal (D), D_Loc)));
+                      New_Occurrence_Of (Discriminal (D), D_Loc)));
                end if;
 
                Next_Discriminant (D);
@@ -1973,7 +1973,8 @@ package body Exp_Ch3 is
 
          First_Arg :=
            OK_Convert_To (Parent_Type,
-             New_Reference_To (Defining_Identifier (First (Parameters)), Loc));
+             New_Occurrence_Of
+               (Defining_Identifier (First (Parameters)), Loc));
 
          Set_Etype (First_Arg, Parent_Type);
 
@@ -2044,7 +2045,7 @@ package body Exp_Ch3 is
                   and then Ekind (Entity (Arg)) = E_Discriminant
                then
                   Append_To (Args,
-                    New_Reference_To (Discriminal (Entity (Arg)), Loc));
+                    New_Occurrence_Of (Discriminal (Entity (Arg)), Loc));
 
                --  Case of access discriminants. We replace the reference
                --  to the type by a reference to the actual object.
@@ -2109,9 +2110,9 @@ package body Exp_Ch3 is
                   Make_Defining_Identifier (Loc, Name_uO),
                 In_Present          => True,
                 Parameter_Type      =>
-                  New_Reference_To (RTE (RE_Address), Loc))));
+                  New_Occurrence_Of (RTE (RE_Address), Loc))));
             Set_Result_Definition (Spec_Node,
-              New_Reference_To (RTE (RE_Storage_Offset), Loc));
+              New_Occurrence_Of (RTE (RE_Storage_Offset), Loc));
 
             --  Generate
             --    function Fxx (O : in Rec_Typ) return Storage_Offset is
@@ -2132,7 +2133,7 @@ package body Exp_Ch3 is
                     Null_Exclusion_Present => False,
                     Constant_Present       => False,
                     Subtype_Indication     =>
-                      New_Reference_To (Rec_Type, Loc)))));
+                      New_Occurrence_Of (Rec_Type, Loc)))));
 
             Set_Handled_Statement_Sequence (Body_Node,
               Make_Handled_Sequence_Of_Statements (Loc,
@@ -2146,7 +2147,7 @@ package body Exp_Ch3 is
                               Unchecked_Convert_To (Acc_Type,
                                 Make_Identifier (Loc, Name_uO)),
                             Selector_Name =>
-                              New_Reference_To (Iface_Comp, Loc)),
+                              New_Occurrence_Of (Iface_Comp, Loc)),
                         Attribute_Name => Name_Position)))));
 
             Set_Ekind       (Func_Id, E_Function);
@@ -2252,9 +2253,9 @@ package body Exp_Ch3 is
            Make_Object_Declaration (Loc,
              Defining_Identifier => Flag_Id,
              Object_Definition =>
-               New_Reference_To (Standard_Boolean, Loc),
+               New_Occurrence_Of (Standard_Boolean, Loc),
              Expression =>
-               New_Reference_To (Standard_True, Loc));
+               New_Occurrence_Of (Standard_True, Loc));
 
          Analyze (Flag_Decl);
          Append_Freeze_Action (Rec_Type, Flag_Decl);
@@ -2282,9 +2283,9 @@ package body Exp_Ch3 is
          Append_To (Init_Tags_List,
            Make_Assignment_Statement (Loc,
              Name =>
-               New_Reference_To (Flag_Id, Loc),
+               New_Occurrence_Of (Flag_Id, Loc),
              Expression =>
-               New_Reference_To (Standard_False, Loc)));
+               New_Occurrence_Of (Standard_False, Loc)));
 
          Append_To (Body_Stmts,
            Make_If_Statement (Loc,
@@ -2435,10 +2436,10 @@ package body Exp_Ch3 is
                      Make_Selected_Component (Loc,
                        Prefix        => Make_Identifier (Loc, Name_uInit),
                        Selector_Name =>
-                         New_Reference_To
+                         New_Occurrence_Of
                            (First_Tag_Component (Rec_Type), Loc)),
                    Expression =>
-                     New_Reference_To
+                     New_Occurrence_Of
                        (Node
                          (First_Elmt (Access_Disp_Table (Rec_Type))), Loc)));
 
@@ -2490,10 +2491,10 @@ package body Exp_Ch3 is
                      Make_Selected_Component (Loc,
                        Prefix        => Make_Identifier (Loc, Name_uInit),
                        Selector_Name =>
-                         New_Reference_To
+                         New_Occurrence_Of
                            (First_Tag_Component (Rec_Type), Loc)),
                    Expression =>
-                     New_Reference_To
+                     New_Occurrence_Of
                        (Node
                          (First_Elmt (Access_Disp_Table (Rec_Type))), Loc)));
 
@@ -2550,7 +2551,7 @@ package body Exp_Ch3 is
 
                         New_Nod :=
                           Make_Procedure_Call_Statement (Loc,
-                            New_Reference_To (Init_DT, Loc));
+                            New_Occurrence_Of (Init_DT, Loc));
                         Insert_After (Ins_Nod, New_Nod);
 
                         --  Update location of init tag statements
@@ -2623,11 +2624,11 @@ package body Exp_Ch3 is
                    Statements => New_List (
                      Make_Procedure_Call_Statement (Loc,
                        Name =>
-                         New_Reference_To (Local_DF_Id, Loc),
+                         New_Occurrence_Of (Local_DF_Id, Loc),
 
                        Parameter_Associations => New_List (
                          Make_Identifier (Loc, Name_uInit),
-                         New_Reference_To (Standard_False, Loc))),
+                         New_Occurrence_Of (Standard_False, Loc))),
 
                      Make_Raise_Statement (Loc)))));
             end;
@@ -2700,10 +2701,10 @@ package body Exp_Ch3 is
 
             Append_To (Stmts,
               Make_Assignment_Statement (Loc,
-                Name       => New_Reference_To (Counter_Id, Loc),
+                Name       => New_Occurrence_Of (Counter_Id, Loc),
                 Expression =>
                   Make_Op_Add (Loc,
-                    Left_Opnd  => New_Reference_To (Counter_Id, Loc),
+                    Left_Opnd  => New_Occurrence_Of (Counter_Id, Loc),
                     Right_Opnd => Make_Integer_Literal (Loc, 1))));
          end Increment_Counter;
 
@@ -2730,7 +2731,7 @@ package body Exp_Ch3 is
               Make_Object_Declaration (Loc,
                 Defining_Identifier => Counter_Id,
                 Object_Definition   =>
-                  New_Reference_To (Standard_Integer, Loc),
+                  New_Occurrence_Of (Standard_Integer, Loc),
                 Expression          =>
                   Make_Integer_Literal (Loc, 0)));
          end Make_Counter;
@@ -3043,7 +3044,7 @@ package body Exp_Ch3 is
                               Append_To (Stmts,
                                 Make_Procedure_Call_Statement (Decl_Loc,
                                   Name =>
-                                    New_Reference_To (RTE (
+                                    New_Occurrence_Of (RTE (
                                       RE_Bind_Interrupt_To_Entry), Decl_Loc),
                                   Parameter_Associations => New_List (
                                     Make_Selected_Component (Decl_Loc,
@@ -3149,7 +3150,7 @@ package body Exp_Ch3 is
                Append_To (Stmts,
                  Make_Case_Statement (Var_Loc,
                    Expression =>
-                     New_Reference_To (Discriminal (
+                     New_Occurrence_Of (Discriminal (
                        Entity (Name (Variant_Part (Comp_List)))), Var_Loc),
                    Alternatives => Variant_Alts));
             end;
@@ -4063,38 +4064,38 @@ package body Exp_Ch3 is
              Defining_Identifier => Larray,
              Out_Present => True,
              Parameter_Type =>
-               New_Reference_To (Base_Type (Typ), Loc)),
+               New_Occurrence_Of (Base_Type (Typ), Loc)),
 
            Make_Parameter_Specification (Loc,
              Defining_Identifier => Rarray,
              Parameter_Type =>
-               New_Reference_To (Base_Type (Typ), Loc)),
+               New_Occurrence_Of (Base_Type (Typ), Loc)),
 
            Make_Parameter_Specification (Loc,
              Defining_Identifier => Left_Lo,
              Parameter_Type =>
-               New_Reference_To (Index, Loc)),
+               New_Occurrence_Of (Index, Loc)),
 
            Make_Parameter_Specification (Loc,
              Defining_Identifier => Left_Hi,
              Parameter_Type =>
-               New_Reference_To (Index, Loc)),
+               New_Occurrence_Of (Index, Loc)),
 
            Make_Parameter_Specification (Loc,
              Defining_Identifier => Right_Lo,
              Parameter_Type =>
-               New_Reference_To (Index, Loc)),
+               New_Occurrence_Of (Index, Loc)),
 
            Make_Parameter_Specification (Loc,
              Defining_Identifier => Right_Hi,
              Parameter_Type =>
-               New_Reference_To (Index, Loc)));
+               New_Occurrence_Of (Index, Loc)));
 
          Append_To (Formals,
            Make_Parameter_Specification (Loc,
              Defining_Identifier => Rev,
              Parameter_Type =>
-               New_Reference_To (Standard_Boolean, Loc)));
+               New_Occurrence_Of (Standard_Boolean, Loc)));
 
          Spec :=
            Make_Procedure_Specification (Loc,
@@ -4340,7 +4341,7 @@ package body Exp_Ch3 is
             Make_Function_Specification (Loc,
               Defining_Unit_Name       => F,
               Parameter_Specifications => Pspecs,
-              Result_Definition => New_Reference_To (Standard_Boolean, Loc)),
+              Result_Definition => New_Occurrence_Of (Standard_Boolean, Loc)),
           Declarations               => New_List,
           Handled_Statement_Sequence =>
             Make_Handled_Sequence_Of_Statements (Loc, Statements => Stmts)));
@@ -4348,12 +4349,12 @@ package body Exp_Ch3 is
       Append_To (Pspecs,
         Make_Parameter_Specification (Loc,
           Defining_Identifier => X,
-          Parameter_Type      => New_Reference_To (Typ, Loc)));
+          Parameter_Type      => New_Occurrence_Of (Typ, Loc)));
 
       Append_To (Pspecs,
         Make_Parameter_Specification (Loc,
           Defining_Identifier => Y,
-          Parameter_Type      => New_Reference_To (Typ, Loc)));
+          Parameter_Type      => New_Occurrence_Of (Typ, Loc)));
 
       --  Unchecked_Unions require additional machinery to support equality.
       --  Two extra parameters (A and B) are added to the equality function
@@ -4386,12 +4387,14 @@ package body Exp_Ch3 is
                Append_To (Pspecs,
                  Make_Parameter_Specification (Loc,
                    Defining_Identifier => A,
-                   Parameter_Type      => New_Reference_To (Discr_Type, Loc)));
+                   Parameter_Type      =>
+                     New_Occurrence_Of (Discr_Type, Loc)));
 
                Append_To (Pspecs,
                  Make_Parameter_Specification (Loc,
                    Defining_Identifier => B,
-                   Parameter_Type      => New_Reference_To (Discr_Type, Loc)));
+                   Parameter_Type      =>
+                     New_Occurrence_Of (Discr_Type, Loc)));
 
                Append_Elmt (A, New_Discrs);
 
@@ -4406,8 +4409,8 @@ package body Exp_Ch3 is
                  Make_If_Statement (Loc,
                    Condition       =>
                      Make_Op_Ne (Loc,
-                       Left_Opnd  => New_Reference_To (A, Loc),
-                       Right_Opnd => New_Reference_To (B, Loc)),
+                       Left_Opnd  => New_Occurrence_Of (A, Loc),
+                       Right_Opnd => New_Occurrence_Of (B, Loc)),
                    Then_Statements => New_List (
                      Make_Simple_Return_Statement (Loc,
                        Expression =>
@@ -4437,7 +4440,7 @@ package body Exp_Ch3 is
 
       Append_To (Stmts,
         Make_Simple_Return_Statement (Loc,
-          Expression => New_Reference_To (Standard_True, Loc)));
+          Expression => New_Occurrence_Of (Standard_True, Loc)));
 
       Set_TSS (Typ, F);
       Set_Is_Pure (F);
@@ -4580,7 +4583,7 @@ package body Exp_Ch3 is
          Par_Subtype :=
            Process_Subtype (
              Make_Subtype_Indication (Loc,
-               Subtype_Mark => New_Reference_To (Entity (Indic), Loc),
+               Subtype_Mark => New_Occurrence_Of (Entity (Indic), Loc),
                Constraint   =>
                  Make_Index_Or_Discriminant_Constraint (Loc,
                    Constraints => List_Constr)),
@@ -4600,7 +4603,7 @@ package body Exp_Ch3 is
           Component_Definition =>
             Make_Component_Definition (Loc,
               Aliased_Present => False,
-              Subtype_Indication => New_Reference_To (Par_Subtype, Loc)));
+              Subtype_Indication => New_Occurrence_Of (Par_Subtype, Loc)));
 
       if Null_Present (Rec_Ext_Part) then
          Set_Component_List (Rec_Ext_Part,
@@ -5176,7 +5179,7 @@ package body Exp_Ch3 is
             --  address clause is applied to the object, causing it to get
             --  delayed freezing).
 
-            Id_Ref := New_Reference_To (Def_Id, Loc);
+            Id_Ref := New_Occurrence_Of (Def_Id, Loc);
             Set_Must_Not_Freeze (Id_Ref);
             Set_Assignment_OK (Id_Ref);
 
@@ -5393,7 +5396,7 @@ package body Exp_Ch3 is
                        Make_Selected_Component (Loc,
                          Prefix => New_Occurrence_Of (Obj_Id, Loc),
                          Selector_Name =>
-                           New_Reference_To
+                           New_Occurrence_Of
                              (Find_Interface_Tag (Expr_Typ, Iface), Loc));
 
                   --  Replace
@@ -5464,12 +5467,12 @@ package body Exp_Ch3 is
 
                      Tag_Comp :=
                        Make_Function_Call (Loc,
-                         Name => New_Reference_To (RTE (RE_Displace), Loc),
+                         Name => New_Occurrence_Of (RTE (RE_Displace), Loc),
                          Parameter_Associations => New_List (
                            Make_Attribute_Reference (Loc,
                              Prefix => New_Occurrence_Of (Obj_Id, Loc),
                              Attribute_Name => Name_Address),
-                           New_Reference_To
+                           New_Occurrence_Of
                              (Node (First_Elmt (Access_Disp_Table (Iface))),
                               Loc)));
                   end if;
@@ -5591,7 +5594,7 @@ package body Exp_Ch3 is
             then
                Insert_Action_After (Init_After,
                  Make_Adjust_Call (
-                   Obj_Ref => New_Reference_To (Def_Id, Loc),
+                   Obj_Ref => New_Occurrence_Of (Def_Id, Loc),
                    Typ     => Base_Typ));
             end if;
 
@@ -5624,7 +5627,7 @@ package body Exp_Ch3 is
                     Make_Selected_Component (Loc,
                        Prefix => New_Occurrence_Of (Def_Id, Loc),
                        Selector_Name =>
-                         New_Reference_To (First_Tag_Component (Full_Typ),
+                         New_Occurrence_Of (First_Tag_Component (Full_Typ),
                                            Loc));
                   Set_Assignment_OK (New_Ref);
 
@@ -5633,7 +5636,7 @@ package body Exp_Ch3 is
                       Name       => New_Ref,
                       Expression =>
                         Unchecked_Convert_To (RTE (RE_Tag),
-                          New_Reference_To
+                          New_Occurrence_Of
                             (Node (First_Elmt (Access_Disp_Table (Full_Typ))),
                              Loc))));
                end;
@@ -5648,7 +5651,7 @@ package body Exp_Ch3 is
                --  The call to the initialization procedure does NOT freeze the
                --  object being initialized.
 
-               Id_Ref := New_Reference_To (Def_Id, Loc);
+               Id_Ref := New_Occurrence_Of (Def_Id, Loc);
                Set_Must_Not_Freeze (Id_Ref);
                Set_Assignment_OK (Id_Ref);
 
@@ -5714,7 +5717,7 @@ package body Exp_Ch3 is
             declare
                Stat : constant Node_Id :=
                        Make_Assignment_Statement (Loc,
-                         Name       => New_Reference_To (Def_Id, Loc),
+                         Name       => New_Occurrence_Of (Def_Id, Loc),
                          Expression => Relocate_Node (Expr));
             begin
                Set_Expression (N, Empty);
@@ -5936,7 +5939,7 @@ package body Exp_Ch3 is
           Component_Definition =>
             Make_Component_Definition (Sloc_N,
               Aliased_Present => False,
-              Subtype_Indication => New_Reference_To (RTE (RE_Tag), Sloc_N)));
+              Subtype_Indication => New_Occurrence_Of (RTE (RE_Tag), Sloc_N)));
 
       if Null_Present (Comp_List)
         or else Is_Empty_List (Component_Items (Comp_List))
@@ -6211,7 +6214,7 @@ package body Exp_Ch3 is
          Set_Has_Contiguous_Rep (Typ);
          Ent := First_Literal (Typ);
          Num := 1;
-         Lst := New_List (New_Reference_To (Ent, Sloc (Ent)));
+         Lst := New_List (New_Occurrence_Of (Ent, Sloc (Ent)));
 
       else
          --  Build list of literal references
@@ -6221,7 +6224,7 @@ package body Exp_Ch3 is
 
          Ent := First_Literal (Typ);
          while Present (Ent) loop
-            Append_To (Lst, New_Reference_To (Ent, Sloc (Ent)));
+            Append_To (Lst, New_Occurrence_Of (Ent, Sloc (Ent)));
             Num := Num + 1;
             Next_Literal (Ent);
          end loop;
@@ -6249,7 +6252,7 @@ package body Exp_Ch3 is
             Make_Constrained_Array_Definition (Loc,
               Discrete_Subtype_Definitions => New_List (
                 Make_Subtype_Indication (Loc,
-                  Subtype_Mark => New_Reference_To (Standard_Natural, Loc),
+                  Subtype_Mark => New_Occurrence_Of (Standard_Natural, Loc),
                   Constraint =>
                     Make_Range_Constraint (Loc,
                       Range_Expression =>
@@ -6262,7 +6265,7 @@ package body Exp_Ch3 is
               Component_Definition =>
                 Make_Component_Definition (Loc,
                   Aliased_Present => False,
-                  Subtype_Indication => New_Reference_To (Typ, Loc))),
+                  Subtype_Indication => New_Occurrence_Of (Typ, Loc))),
 
           Expression =>
             Make_Aggregate (Loc,
@@ -6431,13 +6434,14 @@ package body Exp_Ch3 is
                 Make_Parameter_Specification (Loc,
                   Defining_Identifier =>
                     Make_Defining_Identifier (Loc, Name_uA),
-                  Parameter_Type => New_Reference_To (Typ, Loc)),
+                  Parameter_Type => New_Occurrence_Of (Typ, Loc)),
                 Make_Parameter_Specification (Loc,
                   Defining_Identifier =>
                     Make_Defining_Identifier (Loc, Name_uF),
-                  Parameter_Type => New_Reference_To (Standard_Boolean, Loc))),
+                  Parameter_Type =>
+                    New_Occurrence_Of (Standard_Boolean, Loc))),
 
-              Result_Definition => New_Reference_To (Standard_Integer, Loc)),
+              Result_Definition => New_Occurrence_Of (Standard_Integer, Loc)),
 
             Declarations => Empty_List,
 
@@ -7018,10 +7022,10 @@ package body Exp_Ch3 is
                            Insert_Action (Ins_Node,
                              Make_Procedure_Call_Statement (Loc,
                                Name =>
-                                 New_Reference_To
+                                 New_Occurrence_Of
                                    (RTE (RE_Set_Is_Heterogeneous), Loc),
                                Parameter_Associations => New_List (
-                                 New_Reference_To (Fin_Mas_Id, Loc))));
+                                 New_Occurrence_Of (Fin_Mas_Id, Loc))));
                         end if;
                      end if;
 
@@ -7204,12 +7208,12 @@ package body Exp_Ch3 is
                   else
                      DT_Size :=
                        Make_Attribute_Reference (Loc,
-                         Prefix => New_Reference_To (Desig_Type, Loc),
+                         Prefix => New_Occurrence_Of (Desig_Type, Loc),
                          Attribute_Name => Name_Max_Size_In_Storage_Elements);
 
                      DT_Align :=
                        Make_Attribute_Reference (Loc,
-                         Prefix => New_Reference_To (Desig_Type, Loc),
+                         Prefix => New_Occurrence_Of (Desig_Type, Loc),
                          Attribute_Name => Name_Alignment);
                   end if;
 
@@ -7246,7 +7250,7 @@ package body Exp_Ch3 is
                       Object_Definition =>
                         Make_Subtype_Indication (Loc,
                           Subtype_Mark =>
-                            New_Reference_To
+                            New_Occurrence_Of
                               (RTE (RE_Stack_Bounded_Pool), Loc),
 
                           Constraint =>
@@ -7255,7 +7259,7 @@ package body Exp_Ch3 is
 
                               --  First discriminant is the Pool Size
 
-                                New_Reference_To (
+                                New_Occurrence_Of (
                                   Storage_Size_Variable (Def_Id), Loc),
 
                               --  Second discriminant is the element size
@@ -7331,9 +7335,9 @@ package body Exp_Ch3 is
                             Condition =>
                               Make_In (Loc,
                                 Left_Opnd =>
-                                  New_Reference_To (Pool, Loc),
+                                  New_Occurrence_Of (Pool, Loc),
                                 Right_Opnd =>
-                                  New_Reference_To
+                                  New_Occurrence_Of
                                     (Class_Wide_Type (RSPWS), Loc)),
 
                             Then_Statements => New_List (
@@ -7853,7 +7857,7 @@ package body Exp_Ch3 is
                    Name => New_Occurrence_Of (Proc_Id, Loc),
                    Parameter_Associations =>
                      New_List
-                       (New_Reference_To (First_Formal (Inv_Id), Loc)));
+                       (New_Occurrence_Of (First_Formal (Inv_Id), Loc)));
 
             begin
 
@@ -7953,7 +7957,7 @@ package body Exp_Ch3 is
             Make_Defining_Identifier (Loc, Name_uInit),
           In_Present  => True,
           Out_Present => True,
-          Parameter_Type => New_Reference_To (Typ, Loc)));
+          Parameter_Type => New_Occurrence_Of (Typ, Loc)));
 
       --  For task record value, or type that contains tasks, add two more
       --  formals, _Master : Master_Id and _Chain : in out Activation_Chain
@@ -7967,7 +7971,7 @@ package body Exp_Ch3 is
              Defining_Identifier =>
                Make_Defining_Identifier (Loc, Name_uMaster),
              Parameter_Type      =>
-               New_Reference_To (RTE (RE_Master_Id), Loc)));
+               New_Occurrence_Of (RTE (RE_Master_Id), Loc)));
 
          --  Add _Chain (not done for sequential elaboration policy, see
          --  comment for Create_Restricted_Task_Sequential in s-tarest.ads).
@@ -7980,7 +7984,7 @@ package body Exp_Ch3 is
                 In_Present          => True,
                 Out_Present         => True,
                 Parameter_Type      =>
-                  New_Reference_To (RTE (RE_Activation_Chain), Loc)));
+                  New_Occurrence_Of (RTE (RE_Activation_Chain), Loc)));
          end if;
 
          Append_To (Formals,
@@ -7988,7 +7992,7 @@ package body Exp_Ch3 is
              Defining_Identifier =>
                Make_Defining_Identifier (Loc, Name_uTask_Name),
              In_Present          => True,
-             Parameter_Type      => New_Reference_To (Standard_String, Loc)));
+             Parameter_Type      => New_Occurrence_Of (Standard_String, Loc)));
       end if;
 
       return Formals;
@@ -8048,9 +8052,9 @@ package body Exp_Ch3 is
                 Name =>
                   Make_Selected_Component (Loc,
                     Prefix => New_Copy_Tree (Target),
-                    Selector_Name => New_Reference_To (Tag_Comp, Loc)),
+                    Selector_Name => New_Occurrence_Of (Tag_Comp, Loc)),
                 Expression =>
-                  New_Reference_To (Iface_Tag, Loc)));
+                  New_Occurrence_Of (Iface_Tag, Loc)));
          end if;
 
          Comp_Typ := Scope (Tag_Comp);
@@ -8083,7 +8087,7 @@ package body Exp_Ch3 is
 
             Append_To (Stmts_List,
               Make_Procedure_Call_Statement (Loc,
-                Name => New_Reference_To
+                Name => New_Occurrence_Of
                           (RTE (RE_Set_Dynamic_Offset_To_Top), Loc),
                 Parameter_Associations => New_List (
                   Make_Attribute_Reference (Loc,
@@ -8091,7 +8095,7 @@ package body Exp_Ch3 is
                     Attribute_Name => Name_Address),
 
                   Unchecked_Convert_To (RTE (RE_Tag),
-                    New_Reference_To
+                    New_Occurrence_Of
                       (Node (First_Elmt (Access_Disp_Table (Iface))),
                        Loc)),
 
@@ -8102,12 +8106,12 @@ package body Exp_Ch3 is
                          Make_Selected_Component (Loc,
                            Prefix        => New_Copy_Tree (Target),
                            Selector_Name =>
-                             New_Reference_To (Tag_Comp, Loc)),
+                             New_Occurrence_Of (Tag_Comp, Loc)),
                        Attribute_Name => Name_Position)),
 
                   Unchecked_Convert_To (RTE (RE_Offset_To_Top_Function_Ptr),
                     Make_Attribute_Reference (Loc,
-                      Prefix => New_Reference_To
+                      Prefix => New_Occurrence_Of
                                   (DT_Offset_To_Top_Func (Tag_Comp), Loc),
                       Attribute_Name => Name_Address)))));
 
@@ -8122,14 +8126,14 @@ package body Exp_Ch3 is
                 Name =>
                   Make_Selected_Component (Loc,
                     Prefix => New_Copy_Tree (Target),
-                    Selector_Name => New_Reference_To
+                    Selector_Name => New_Occurrence_Of
                                        (Offset_To_Top_Comp, Loc)),
                 Expression =>
                   Make_Attribute_Reference (Loc,
                     Prefix       =>
                       Make_Selected_Component (Loc,
                         Prefix        => New_Copy_Tree (Target),
-                        Selector_Name => New_Reference_To (Tag_Comp, Loc)),
+                        Selector_Name => New_Occurrence_Of (Tag_Comp, Loc)),
                   Attribute_Name => Name_Position)));
 
          --  Normal case: No discriminants in the parent type
@@ -8141,7 +8145,7 @@ package body Exp_Ch3 is
             if not Is_Ancestor (Iface, Typ, Use_Full_View => True) then
                Append_To (Stmts_List,
                  Build_Set_Static_Offset_To_Top (Loc,
-                   Iface_Tag    => New_Reference_To (Iface_Tag, Loc),
+                   Iface_Tag    => New_Occurrence_Of (Iface_Tag, Loc),
                    Offset_Value =>
                      Unchecked_Convert_To (RTE (RE_Storage_Offset),
                        Make_Attribute_Reference (Loc,
@@ -8149,7 +8153,7 @@ package body Exp_Ch3 is
                            Make_Selected_Component (Loc,
                              Prefix        => New_Copy_Tree (Target),
                              Selector_Name =>
-                               New_Reference_To (Tag_Comp, Loc)),
+                               New_Occurrence_Of (Tag_Comp, Loc)),
                          Attribute_Name => Name_Position))));
             end if;
 
@@ -8164,7 +8168,7 @@ package body Exp_Ch3 is
             if RTE_Available (RE_Register_Interface_Offset) then
                Append_To (Stmts_List,
                  Make_Procedure_Call_Statement (Loc,
-                   Name => New_Reference_To
+                   Name => New_Occurrence_Of
                              (RTE (RE_Register_Interface_Offset), Loc),
                    Parameter_Associations => New_List (
                      Make_Attribute_Reference (Loc,
@@ -8172,7 +8176,7 @@ package body Exp_Ch3 is
                        Attribute_Name => Name_Address),
 
                      Unchecked_Convert_To (RTE (RE_Tag),
-                       New_Reference_To
+                       New_Occurrence_Of
                          (Node (First_Elmt (Access_Disp_Table (Iface))), Loc)),
 
                      New_Occurrence_Of (Standard_True, Loc),
@@ -8184,7 +8188,7 @@ package body Exp_Ch3 is
                             Make_Selected_Component (Loc,
                               Prefix         => New_Copy_Tree (Target),
                               Selector_Name  =>
-                                New_Reference_To (Tag_Comp, Loc)),
+                                New_Occurrence_Of (Tag_Comp, Loc)),
                          Attribute_Name => Name_Position)),
 
                      Make_Null (Loc))));
@@ -8295,9 +8299,9 @@ package body Exp_Ch3 is
                      Make_Selected_Component (Loc,
                        Prefix => New_Copy_Tree (Target),
                        Selector_Name =>
-                         New_Reference_To (Node (Iface_Comp_Elmt), Loc)),
+                         New_Occurrence_Of (Node (Iface_Comp_Elmt), Loc)),
                    Expression =>
-                     New_Reference_To (Node (Iface_Tag_Elmt), Loc)));
+                     New_Occurrence_Of (Node (Iface_Tag_Elmt), Loc)));
             end if;
 
          --  Otherwise generate code to initialize the tag
@@ -8417,7 +8421,7 @@ package body Exp_Ch3 is
                         Null_Exclusion_Present =>
                           Null_Exclusion_Present (Parent (Formal)),
                         Parameter_Type =>
-                          New_Reference_To (Etype (Formal), Loc),
+                          New_Occurrence_Of (Etype (Formal), Loc),
                         Expression =>
                           New_Copy_Tree (Expression (Parent (Formal)))),
                      Formal_List);
@@ -8433,7 +8437,7 @@ package body Exp_Ch3 is
                     Chars => Chars (Subp)),
                 Parameter_Specifications => Formal_List,
                 Result_Definition        =>
-                  New_Reference_To (Etype (Subp), Loc));
+                  New_Occurrence_Of (Etype (Subp), Loc));
 
             Func_Decl := Make_Subprogram_Declaration (Loc, Func_Spec);
             Append_To (Decl_List, Func_Decl);
@@ -8463,12 +8467,12 @@ package body Exp_Ch3 is
                       Subtype_Mark =>
                         New_Occurrence_Of (Etype (Par_Formal), Loc),
                       Expression   =>
-                        New_Reference_To
+                        New_Occurrence_Of
                           (Defining_Identifier (Formal_Node), Loc)));
                else
                   Append_To
                     (Actual_List,
-                     New_Reference_To
+                     New_Occurrence_Of
                        (Defining_Identifier (Formal_Node), Loc));
                end if;
 
@@ -8483,7 +8487,7 @@ package body Exp_Ch3 is
                   Make_Extension_Aggregate (Loc,
                     Ancestor_Part =>
                       Make_Function_Call (Loc,
-                        Name => New_Reference_To (Alias (Subp), Loc),
+                        Name => New_Occurrence_Of (Alias (Subp), Loc),
                         Parameter_Associations => Actual_List),
                     Null_Record_Present => True));
 
@@ -8542,12 +8546,12 @@ package body Exp_Ch3 is
             Make_Parameter_Specification (Loc,
               Defining_Identifier =>
                 Make_Defining_Identifier (Loc, Name_X),
-              Parameter_Type      => New_Reference_To (Typ, Loc)),
+              Parameter_Type      => New_Occurrence_Of (Typ, Loc)),
 
             Make_Parameter_Specification (Loc,
               Defining_Identifier =>
                 Make_Defining_Identifier (Loc, Name_Y),
-              Parameter_Type      => New_Reference_To (Typ, Loc))),
+              Parameter_Type      => New_Occurrence_Of (Typ, Loc))),
 
           Ret_Type => Standard_Boolean,
           For_Body => True);
@@ -8571,7 +8575,7 @@ package body Exp_Ch3 is
          Append_List_To (Stmts, Make_Eq_Case (Typ, Comps));
          Append_To (Stmts,
            Make_Simple_Return_Statement (Loc,
-             Expression => New_Reference_To (Standard_True, Loc)));
+             Expression => New_Occurrence_Of (Standard_True, Loc)));
 
       else
          Append_To (Stmts,
@@ -8689,7 +8693,7 @@ package body Exp_Ch3 is
          Append_To (Result,
            Make_Case_Statement (Loc,
              Expression =>
-               New_Reference_To (Corresponding_Formal (CL), Loc),
+               New_Occurrence_Of (Corresponding_Formal (CL), Loc),
              Alternatives => Alt_List));
 
       else
@@ -8747,7 +8751,7 @@ package body Exp_Ch3 is
             --  abstract.
 
             --  Note also that in the following, we use Make_Identifier for
-            --  the component names. Use of New_Reference_To to identify the
+            --  the component names. Use of New_Occurrence_Of to identify the
             --  components would be incorrect because the wrong entities for
             --  discriminants could be picked up in the private type case.
 
@@ -8898,12 +8902,12 @@ package body Exp_Ch3 is
             Make_Parameter_Specification (Loc,
               Defining_Identifier =>
                 Make_Defining_Identifier (Loc, Chars (Left_Op)),
-              Parameter_Type      => New_Reference_To (Tag_Typ, Loc)),
+              Parameter_Type      => New_Occurrence_Of (Tag_Typ, Loc)),
 
             Make_Parameter_Specification (Loc,
               Defining_Identifier =>
                 Make_Defining_Identifier (Loc, Chars (Right_Op)),
-              Parameter_Type      => New_Reference_To (Tag_Typ, Loc))),
+              Parameter_Type      => New_Occurrence_Of (Tag_Typ, Loc))),
 
           Ret_Type => Standard_Boolean,
           For_Body => True);
@@ -8946,7 +8950,7 @@ package body Exp_Ch3 is
           Expression =>
             Make_Op_Not (Loc,
               Make_Function_Call (Loc,
-                Name => New_Reference_To (Target, Loc),
+                Name => New_Occurrence_Of (Target, Loc),
                 Parameter_Associations => New_List (
                   Make_Identifier (Loc, Chars (Left_Op)),
                   Make_Identifier (Loc, Chars (Right_Op)))))));
@@ -9097,7 +9101,7 @@ package body Exp_Ch3 is
         Profile => New_List (
           Make_Parameter_Specification (Loc,
             Defining_Identifier => Make_Defining_Identifier (Loc, Name_X),
-            Parameter_Type      => New_Reference_To (Tag_Typ, Loc))),
+            Parameter_Type      => New_Occurrence_Of (Tag_Typ, Loc))),
 
         Ret_Type => Standard_Long_Long_Integer));
 
@@ -9205,11 +9209,11 @@ package body Exp_Ch3 is
                 Make_Parameter_Specification (Loc,
                   Defining_Identifier =>
                     Make_Defining_Identifier (Loc, Name_X),
-                    Parameter_Type      => New_Reference_To (Tag_Typ, Loc)),
+                    Parameter_Type      => New_Occurrence_Of (Tag_Typ, Loc)),
                 Make_Parameter_Specification (Loc,
                   Defining_Identifier =>
                     Make_Defining_Identifier (Loc, Name_Y),
-                    Parameter_Type      => New_Reference_To (Tag_Typ, Loc))),
+                    Parameter_Type      => New_Occurrence_Of (Tag_Typ, Loc))),
                 Ret_Type => Standard_Boolean);
             Append_To (Res, Eq_Spec);
 
@@ -9250,11 +9254,11 @@ package body Exp_Ch3 is
              Make_Parameter_Specification (Loc,
                Defining_Identifier => Make_Defining_Identifier (Loc, Name_X),
                Out_Present         => True,
-               Parameter_Type      => New_Reference_To (Tag_Typ, Loc)),
+               Parameter_Type      => New_Occurrence_Of (Tag_Typ, Loc)),
 
              Make_Parameter_Specification (Loc,
                Defining_Identifier => Make_Defining_Identifier (Loc, Name_Y),
-               Parameter_Type      => New_Reference_To (Tag_Typ, Loc)))));
+               Parameter_Type      => New_Occurrence_Of (Tag_Typ, Loc)))));
       end if;
 
       --  Ada 2005: Generate declarations for the following primitive
@@ -9478,7 +9482,7 @@ package body Exp_Ch3 is
           Defining_Identifier => Make_Defining_Identifier (Loc, Name_V),
           In_Present          => True,
           Out_Present         => True,
-          Parameter_Type      => New_Reference_To (Tag_Typ, Loc)));
+          Parameter_Type      => New_Occurrence_Of (Tag_Typ, Loc)));
 
       --  F : Boolean := True
 
@@ -9488,8 +9492,8 @@ package body Exp_Ch3 is
          Append_To (Formals,
            Make_Parameter_Specification (Loc,
              Defining_Identifier => Make_Defining_Identifier (Loc, Name_F),
-             Parameter_Type      => New_Reference_To (Standard_Boolean, Loc),
-             Expression          => New_Reference_To (Standard_True, Loc)));
+             Parameter_Type      => New_Occurrence_Of (Standard_Boolean, Loc),
+             Expression          => New_Occurrence_Of (Standard_True, Loc)));
       end if;
 
       return
@@ -9544,7 +9548,7 @@ package body Exp_Ch3 is
            Make_Function_Specification (Loc,
              Defining_Unit_Name       => Id,
              Parameter_Specifications => Profile,
-             Result_Definition        => New_Reference_To (Ret_Type, Loc));
+             Result_Definition        => New_Occurrence_Of (Ret_Type, Loc));
       end if;
 
       if Is_Interface (Tag_Typ) then
@@ -9689,7 +9693,7 @@ package body Exp_Ch3 is
         Profile => New_List (
           Make_Parameter_Specification (Loc,
             Defining_Identifier => Make_Defining_Identifier (Loc, Name_X),
-            Parameter_Type      => New_Reference_To (Tag_Typ, Loc))),
+            Parameter_Type      => New_Occurrence_Of (Tag_Typ, Loc))),
 
         Ret_Type => Standard_Long_Long_Integer,
         For_Body => True);
@@ -9814,11 +9818,11 @@ package body Exp_Ch3 is
                Make_Parameter_Specification (Loc,
                  Defining_Identifier => Make_Defining_Identifier (Loc, Name_X),
                  Out_Present         => True,
-                 Parameter_Type      => New_Reference_To (Tag_Typ, Loc)),
+                 Parameter_Type      => New_Occurrence_Of (Tag_Typ, Loc)),
 
                Make_Parameter_Specification (Loc,
                  Defining_Identifier => Make_Defining_Identifier (Loc, Name_Y),
-                 Parameter_Type      => New_Reference_To (Tag_Typ, Loc))),
+                 Parameter_Type      => New_Occurrence_Of (Tag_Typ, Loc))),
              For_Body => True);
 
          Set_Handled_Statement_Sequence (Decl,
index 512ebd8..36c12ac 100644 (file)
@@ -532,7 +532,7 @@ package body Exp_Ch4 is
               Make_Object_Declaration (Loc,
                 Defining_Identifier => Fin_Mas_Id,
                 Object_Definition =>
-                  New_Reference_To (RTE (RE_Finalization_Master), Loc));
+                  New_Occurrence_Of (RTE (RE_Finalization_Master), Loc));
 
             Insert_Before_And_Analyze (First_Decl, Action);
 
@@ -553,13 +553,13 @@ package body Exp_Ch4 is
                Action :=
                  Make_Procedure_Call_Statement (Loc,
                    Name =>
-                     New_Reference_To (RTE (RE_Set_Base_Pool), Loc),
+                     New_Occurrence_Of (RTE (RE_Set_Base_Pool), Loc),
 
                    Parameter_Associations => New_List (
-                     New_Reference_To (Fin_Mas_Id, Loc),
+                     New_Occurrence_Of (Fin_Mas_Id, Loc),
                      Make_Attribute_Reference (Loc,
                        Prefix =>
-                         New_Reference_To (RTE (RE_Global_Pool_Object), Loc),
+                         New_Occurrence_Of (RTE (RE_Global_Pool_Object), Loc),
                        Attribute_Name => Name_Unrestricted_Access)));
 
                Insert_Before_And_Analyze (First_Decl, Action);
@@ -570,9 +570,9 @@ package body Exp_Ch4 is
                Action :=
                  Make_Procedure_Call_Statement (Loc,
                    Name =>
-                     New_Reference_To (RTE (RE_Set_Is_Heterogeneous), Loc),
+                     New_Occurrence_Of (RTE (RE_Set_Is_Heterogeneous), Loc),
                    Parameter_Associations => New_List (
-                     New_Reference_To (Fin_Mas_Id, Loc)));
+                     New_Occurrence_Of (Fin_Mas_Id, Loc)));
 
                Insert_Before_And_Analyze (First_Decl, Action);
             end if;
@@ -663,7 +663,7 @@ package body Exp_Ch4 is
             Rewrite (N,
               Unchecked_Convert_To (PtrT,
                 Make_Function_Call (Loc,
-                  Name => New_Reference_To (RTE (RE_Displace), Loc),
+                  Name => New_Occurrence_Of (RTE (RE_Displace), Loc),
                   Parameter_Associations => New_List (
                     Unchecked_Convert_To (RTE (RE_Address),
                       Relocate_Node (N)),
@@ -755,7 +755,7 @@ package body Exp_Ch4 is
                Remove_Side_Effects (Ref);
                Obj_Ref := New_Copy_Tree (Ref);
             else
-               Obj_Ref := New_Reference_To (Ref, Loc);
+               Obj_Ref := New_Occurrence_Of (Ref, Loc);
             end if;
 
             --  Step 1: Create the object clean up code
@@ -826,7 +826,7 @@ package body Exp_Ch4 is
 
             Append_To (Stmts,
               Make_Raise_Program_Error (Loc,
-                Condition => New_Reference_To (Standard_True, Loc),
+                Condition => New_Occurrence_Of (Standard_True, Loc),
                 Reason    => PE_Accessibility_Check_Failed));
 
             --  Step 2: Create the accessibility comparison
@@ -856,7 +856,7 @@ package body Exp_Ch4 is
                Cond :=
                  Make_Function_Call (Loc,
                    Name                   =>
-                     New_Reference_To (RTE (RE_Get_Access_Level), Loc),
+                     New_Occurrence_Of (RTE (RE_Get_Access_Level), Loc),
                    Parameter_Associations => New_List (Obj_Ref));
             end if;
 
@@ -1015,11 +1015,11 @@ package body Exp_Ch4 is
                Temp_Decl :=
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => Temp,
-                   Object_Definition   => New_Reference_To (PtrT, Loc),
+                   Object_Definition   => New_Occurrence_Of (PtrT, Loc),
                    Expression          =>
                      Make_Allocator (Loc,
                        Expression =>
-                         New_Reference_To (Etype (Exp), Loc)));
+                         New_Occurrence_Of (Etype (Exp), Loc)));
 
                --  Copy the Comes_From_Source flag for the allocator we just
                --  built, since logically this allocator is a replacement of
@@ -1046,7 +1046,7 @@ package body Exp_Ch4 is
                then
                   Insert_Action (N,
                     Make_Attach_Call (
-                      Obj_Ref => New_Reference_To (Temp, Loc),
+                      Obj_Ref => New_Occurrence_Of (Temp, Loc),
                       Ptr_Typ => PtrT));
                end if;
 
@@ -1058,7 +1058,7 @@ package body Exp_Ch4 is
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => Temp,
                    Constant_Present    => True,
-                   Object_Definition   => New_Reference_To (PtrT, Loc),
+                   Object_Definition   => New_Occurrence_Of (PtrT, Loc),
                    Expression          => Node);
 
                Insert_Action (N, Temp_Decl);
@@ -1076,7 +1076,7 @@ package body Exp_Ch4 is
                   Insert_Action (N,
                     Make_Attach_Call (
                       Obj_Ref =>
-                        New_Reference_To (Temp, Loc),
+                        New_Occurrence_Of (Temp, Loc),
                       Ptr_Typ => PtrT));
                end if;
             end if;
@@ -1101,7 +1101,7 @@ package body Exp_Ch4 is
                        Constant_Present       =>
                          Is_Access_Constant (Etype (N)),
                        Subtype_Indication     =>
-                         New_Reference_To (Etype (Exp), Loc)));
+                         New_Occurrence_Of (Etype (Exp), Loc)));
 
                Insert_Action (N, New_Decl);
 
@@ -1119,10 +1119,10 @@ package body Exp_Ch4 is
                   Temp_Decl :=
                     Make_Object_Declaration (Loc,
                       Defining_Identifier => Temp,
-                      Object_Definition   => New_Reference_To (Def_Id, Loc),
+                      Object_Definition   => New_Occurrence_Of (Def_Id, Loc),
                       Expression          =>
                         Make_Allocator (Loc,
-                          New_Reference_To (Etype (Exp), Loc)));
+                          New_Occurrence_Of (Etype (Exp), Loc)));
 
                   --  Copy the Comes_From_Source flag for the allocator we just
                   --  built, since logically this allocator is a replacement of
@@ -1146,7 +1146,7 @@ package body Exp_Ch4 is
                     Make_Object_Declaration (Loc,
                       Defining_Identifier => Temp,
                       Constant_Present    => True,
-                      Object_Definition   => New_Reference_To (Def_Id, Loc),
+                      Object_Definition   => New_Occurrence_Of (Def_Id, Loc),
                       Expression          => Node);
 
                   Insert_Action (N, Temp_Decl);
@@ -1163,10 +1163,10 @@ package body Exp_Ch4 is
                New_Decl :=
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => Make_Temporary (Loc, 'P'),
-                   Object_Definition   => New_Reference_To (PtrT, Loc),
+                   Object_Definition   => New_Occurrence_Of (PtrT, Loc),
                    Expression          =>
                      Unchecked_Convert_To (PtrT,
-                       New_Reference_To (Temp, Loc)));
+                       New_Occurrence_Of (Temp, Loc)));
 
                Insert_Action (N, New_Decl);
 
@@ -1195,7 +1195,7 @@ package body Exp_Ch4 is
 
          elsif Is_Tagged_Type (T) and then not Is_Class_Wide_Type (T) then
             TagT := T;
-            TagR := New_Reference_To (Temp, Loc);
+            TagR := New_Occurrence_Of (Temp, Loc);
 
          elsif Is_Private_Type (T)
            and then Is_Tagged_Type (Underlying_Type (T))
@@ -1204,12 +1204,13 @@ package body Exp_Ch4 is
             TagR :=
               Unchecked_Convert_To (Underlying_Type (T),
                 Make_Explicit_Dereference (Loc,
-                  Prefix => New_Reference_To (Temp, Loc)));
+                  Prefix => New_Occurrence_Of (Temp, Loc)));
          end if;
 
          if Present (TagT) then
             declare
                Full_T : constant Entity_Id := Underlying_Type (TagT);
+
             begin
                Tag_Assign :=
                  Make_Assignment_Statement (Loc,
@@ -1217,10 +1218,12 @@ package body Exp_Ch4 is
                      Make_Selected_Component (Loc,
                        Prefix => TagR,
                        Selector_Name =>
-                         New_Reference_To (First_Tag_Component (Full_T), Loc)),
+                         New_Occurrence_Of
+                           (First_Tag_Component (Full_T), Loc)),
+
                    Expression =>
                      Unchecked_Convert_To (RTE (RE_Tag),
-                       New_Reference_To
+                       New_Occurrence_Of
                          (Elists.Node
                            (First_Elmt (Access_Disp_Table (Full_T))), Loc)));
             end;
@@ -1255,7 +1258,7 @@ package body Exp_Ch4 is
                    (Obj_Ref =>
                       Unchecked_Convert_To (T,
                         Make_Explicit_Dereference (Loc,
-                          Prefix => New_Reference_To (Temp, Loc))),
+                          Prefix => New_Occurrence_Of (Temp, Loc))),
                     Typ     => T));
             end if;
 
@@ -1284,7 +1287,7 @@ package body Exp_Ch4 is
             end if;
          end if;
 
-         Rewrite (N, New_Reference_To (Temp, Loc));
+         Rewrite (N, New_Occurrence_Of (Temp, Loc));
          Analyze_And_Resolve (N, PtrT);
 
          --  Ada 2005 (AI-251): Displace the pointer to reference the record
@@ -1300,10 +1303,10 @@ package body Exp_Ch4 is
          Temp_Decl :=
            Make_Object_Declaration (Loc,
              Defining_Identifier => Temp,
-             Object_Definition   => New_Reference_To (PtrT, Loc),
+             Object_Definition   => New_Occurrence_Of (PtrT, Loc),
              Expression          =>
                Make_Allocator (Loc,
-                 Expression => New_Reference_To (Etype (Exp), Loc)));
+                 Expression => New_Occurrence_Of (Etype (Exp), Loc)));
 
          --  Copy the Comes_From_Source flag for the allocator we just built,
          --  since logically this allocator is a replacement of the original
@@ -1330,11 +1333,11 @@ package body Exp_Ch4 is
          then
             Insert_Action (N,
               Make_Attach_Call
-                (Obj_Ref => New_Reference_To (Temp, Loc),
+                (Obj_Ref => New_Occurrence_Of (Temp, Loc),
                  Ptr_Typ => PtrT));
          end if;
 
-         Rewrite (N, New_Reference_To (Temp, Loc));
+         Rewrite (N, New_Occurrence_Of (Temp, Loc));
          Analyze_And_Resolve (N, PtrT);
 
       elsif Is_Access_Type (T) and then Can_Never_Be_Null (T) then
@@ -1648,7 +1651,7 @@ package body Exp_Ch4 is
       Func_Name := Defining_Unit_Name (Specification (Func_Body));
       Expr :=
         Make_Function_Call (Loc,
-          Name => New_Reference_To (Func_Name, Loc),
+          Name => New_Occurrence_Of (Func_Name, Loc),
           Parameter_Associations => New_List (Op1, Op2));
 
       Insert_Action (N, Func_Body);
@@ -1821,7 +1824,7 @@ package body Exp_Ch4 is
          return
            Make_Attribute_Reference (Loc,
             Attribute_Name => Nam,
-            Prefix => New_Reference_To (Arr, Loc),
+            Prefix => New_Occurrence_Of (Arr, Loc),
             Expressions => New_List (Make_Integer_Literal (Loc, Num)));
       end Arr_Attr;
 
@@ -1941,8 +1944,8 @@ package body Exp_Ch4 is
             Bn := An;
          end if;
 
-         Append (New_Reference_To (An, Loc), Index_List1);
-         Append (New_Reference_To (Bn, Loc), Index_List2);
+         Append (New_Occurrence_Of (An, Loc), Index_List1);
+         Append (New_Occurrence_Of (Bn, Loc), Index_List2);
 
          Stm_List := New_List (
            Handle_One_Dimension (N + 1, Next_Index (Index)));
@@ -1955,26 +1958,28 @@ package body Exp_Ch4 is
                Make_Exit_Statement (Loc,
                  Condition =>
                    Make_Op_Eq (Loc,
-                      Left_Opnd => New_Reference_To (An, Loc),
+                      Left_Opnd => New_Occurrence_Of (An, Loc),
                       Right_Opnd => Arr_Attr (A, Name_Last, N))));
 
             Append_To (Stm_List,
               Make_Assignment_Statement (Loc,
-                Name       => New_Reference_To (An, Loc),
+                Name       => New_Occurrence_Of (An, Loc),
                 Expression =>
                   Make_Attribute_Reference (Loc,
-                    Prefix         => New_Reference_To (Index_T, Loc),
+                    Prefix         => New_Occurrence_Of (Index_T, Loc),
                     Attribute_Name => Name_Succ,
-                    Expressions    => New_List (New_Reference_To (An, Loc)))));
+                    Expressions    => New_List (
+                      New_Occurrence_Of (An, Loc)))));
 
             Append_To (Stm_List,
               Make_Assignment_Statement (Loc,
-                Name       => New_Reference_To (Bn, Loc),
+                Name       => New_Occurrence_Of (Bn, Loc),
                 Expression =>
                   Make_Attribute_Reference (Loc,
-                    Prefix         => New_Reference_To (Index_T, Loc),
+                    Prefix         => New_Occurrence_Of (Index_T, Loc),
                     Attribute_Name => Name_Succ,
-                    Expressions    => New_List (New_Reference_To (Bn, Loc)))));
+                    Expressions    => New_List (
+                      New_Occurrence_Of (Bn, Loc)))));
          end if;
 
          --  If separate indexes, we need a declare block for An and Bn, and a
@@ -1989,12 +1994,12 @@ package body Exp_Ch4 is
                 Declarations => New_List (
                   Make_Object_Declaration (Loc,
                     Defining_Identifier => An,
-                    Object_Definition   => New_Reference_To (Index_T, Loc),
+                    Object_Definition   => New_Occurrence_Of (Index_T, Loc),
                     Expression          => Arr_Attr (A, Name_First, N)),
 
                   Make_Object_Declaration (Loc,
                     Defining_Identifier => Bn,
-                    Object_Definition   => New_Reference_To (Index_T, Loc),
+                    Object_Definition   => New_Occurrence_Of (Index_T, Loc),
                     Expression          => Arr_Attr (B, Name_First, N))),
 
                 Handled_Statement_Sequence =>
@@ -2117,11 +2122,11 @@ package body Exp_Ch4 is
       Formals := New_List (
         Make_Parameter_Specification (Loc,
           Defining_Identifier => A,
-          Parameter_Type      => New_Reference_To (Ltyp, Loc)),
+          Parameter_Type      => New_Occurrence_Of (Ltyp, Loc)),
 
         Make_Parameter_Specification (Loc,
           Defining_Identifier => B,
-          Parameter_Type      => New_Reference_To (Rtyp, Loc)));
+          Parameter_Type      => New_Occurrence_Of (Rtyp, Loc)));
 
       Func_Name := Make_Temporary (Loc, 'E');
 
@@ -2133,7 +2138,7 @@ package body Exp_Ch4 is
             Make_Function_Specification (Loc,
               Defining_Unit_Name       => Func_Name,
               Parameter_Specifications => Formals,
-              Result_Definition => New_Reference_To (Standard_Boolean, Loc)),
+              Result_Definition => New_Occurrence_Of (Standard_Boolean, Loc)),
 
           Declarations =>  Decls,
 
@@ -2193,7 +2198,7 @@ package body Exp_Ch4 is
 
          return
            Make_Function_Call (Loc,
-             Name                   => New_Reference_To (Func_Name, Loc),
+             Name                   => New_Occurrence_Of (Func_Name, Loc),
              Parameter_Associations => Actuals);
    end Expand_Array_Equality;
 
@@ -2265,12 +2270,12 @@ package body Exp_Ch4 is
 
             Rewrite (N,
               Make_Function_Call (Loc,
-                Name                   => New_Reference_To (Func_Name, Loc),
+                Name                   => New_Occurrence_Of (Func_Name, Loc),
                 Parameter_Associations =>
                   New_List (
                     L,
                     Make_Type_Conversion
-                      (Loc, New_Reference_To (Etype (L), Loc), R))));
+                      (Loc, New_Occurrence_Of (Etype (L), Loc), R))));
 
             Analyze_And_Resolve (N, Typ);
          end if;
@@ -2569,7 +2574,7 @@ package body Exp_Ch4 is
                else
                   return
                     Make_Function_Call (Loc,
-                      Name                   => New_Reference_To (Prim, Loc),
+                      Name                   => New_Occurrence_Of (Prim, Loc),
                       Parameter_Associations => New_List (Lhs, Rhs));
                end if;
             end if;
@@ -2674,7 +2679,7 @@ package body Exp_Ch4 is
 
          return
            Make_Function_Call (Loc,
-             Name => New_Reference_To (Eq_Op, Loc),
+             Name => New_Occurrence_Of (Eq_Op, Loc),
              Parameter_Associations =>
                New_List
                  (Unchecked_Convert_To (Etype (First_Formal (Eq_Op)), Lhs),
@@ -2697,7 +2702,7 @@ package body Exp_Ch4 is
                begin
                   return
                     Make_Function_Call (Loc,
-                      Name                  => New_Reference_To (Eq_Op, Loc),
+                      Name                  => New_Occurrence_Of (Eq_Op, Loc),
                       Parameter_Associations => New_List (
                         OK_Convert_To (T, Lhs),
                         OK_Convert_To (T, Rhs)));
@@ -2804,7 +2809,7 @@ package body Exp_Ch4 is
 
                      return
                        Make_Function_Call (Loc,
-                         Name => New_Reference_To (Eq_Op, Loc),
+                         Name => New_Occurrence_Of (Eq_Op, Loc),
                          Parameter_Associations => New_List (
                            Lhs,
                            Rhs,
@@ -2815,7 +2820,7 @@ package body Exp_Ch4 is
                else
                   return
                     Make_Function_Call (Loc,
-                      Name                   => New_Reference_To (Eq_Op, Loc),
+                      Name                   => New_Occurrence_Of (Eq_Op, Loc),
                       Parameter_Associations => New_List (Lhs, Rhs));
                end if;
             end if;
@@ -3155,7 +3160,7 @@ package body Exp_Ch4 is
 
             Opnd_Low_Bound (NN) :=
               Make_Attribute_Reference (Loc,
-                Prefix         => New_Reference_To (Istyp, Loc),
+                Prefix         => New_Occurrence_Of (Istyp, Loc),
                 Attribute_Name => Name_First);
 
             Set := True;
@@ -3326,7 +3331,7 @@ package body Exp_Ch4 is
             if Is_Fixed_Length (1) then
                Aggr_Length (1) := Make_Integer_Literal (Loc, Fixed_Length (1));
             else
-               Aggr_Length (1) := New_Reference_To (Var_Length (1), Loc);
+               Aggr_Length (1) := New_Occurrence_Of (Var_Length (1), Loc);
             end if;
 
          --  If entry is fixed length and only fixed lengths so far, make
@@ -3348,7 +3353,7 @@ package body Exp_Ch4 is
             if Is_Fixed_Length (NN) then
                Clen := Make_Integer_Literal (Loc, Fixed_Length (NN));
             else
-               Clen := New_Reference_To (Var_Length (NN), Loc);
+               Clen := New_Occurrence_Of (Var_Length (NN), Loc);
             end if;
 
             Append_To (Actions,
@@ -3447,8 +3452,10 @@ package body Exp_Ch4 is
                       Expressions => New_List (
 
                         Make_Op_Ne (Loc,
-                          Left_Opnd  => New_Reference_To (Var_Length (J), Loc),
-                          Right_Opnd => Make_Integer_Literal (Loc, 0)),
+                          Left_Opnd  =>
+                            New_Occurrence_Of (Var_Length (J), Loc),
+                          Right_Opnd =>
+                            Make_Integer_Literal (Loc, 0)),
 
                         New_Copy (Opnd_Low_Bound (J)),
                         Get_Known_Bound (J + 1)));
@@ -3465,7 +3472,7 @@ package body Exp_Ch4 is
                 Object_Definition   => New_Occurrence_Of (Ityp, Loc),
                 Expression          => Get_Known_Bound (1)));
 
-            Low_Bound := New_Reference_To (Ent, Loc);
+            Low_Bound := New_Occurrence_Of (Ent, Loc);
          end;
       end if;
 
@@ -3625,10 +3632,10 @@ package body Exp_Ch4 is
 
                   Insert_Action (Cnode,
                     Make_Procedure_Call_Statement (Loc,
-                      Name => New_Reference_To (RTE (RR (NN)), Loc),
+                      Name => New_Occurrence_Of (RTE (RR (NN)), Loc),
                       Parameter_Associations => Opnds));
 
-                  Result := New_Reference_To (Ent, Loc);
+                  Result := New_Occurrence_Of (Ent, Loc);
                   goto Done;
                end;
             end if;
@@ -3715,7 +3722,7 @@ package body Exp_Ch4 is
 
       --  Finally we build the result, which is a reference to the array object
 
-      Result := New_Reference_To (Ent, Loc);
+      Result := New_Occurrence_Of (Ent, Loc);
 
    <<Done>>
       Rewrite (Cnode, Result);
@@ -3783,11 +3790,11 @@ package body Exp_Ch4 is
                 Low_Bound =>
                   Make_Attribute_Reference (Loc,
                     Attribute_Name => Name_First,
-                    Prefix         => New_Reference_To (Rtyp, Loc)),
+                    Prefix         => New_Occurrence_Of (Rtyp, Loc)),
                 High_Bound =>
                   Make_Attribute_Reference (Loc,
                     Attribute_Name => Name_Last,
-                    Prefix         => New_Reference_To (Rtyp, Loc))));
+                    Prefix         => New_Occurrence_Of (Rtyp, Loc))));
             Analyze_And_Resolve (Rop, Rtyp, Suppress => All_Checks);
          end;
       end if;
@@ -4562,7 +4569,7 @@ package body Exp_Ch4 is
                Init_Arg1 :=
                  Make_Explicit_Dereference (Loc,
                    Prefix =>
-                     New_Reference_To (Temp, Loc));
+                     New_Occurrence_Of (Temp, Loc));
 
                Set_Assignment_OK (Init_Arg1);
                Temp_Type := PtrT;
@@ -4683,7 +4690,7 @@ package body Exp_Ch4 is
                        New_Occurrence_Of (RTE (RE_Library_Task_Level), Loc));
                   else
                      Append_To (Args,
-                       New_Reference_To
+                       New_Occurrence_Of
                          (Master_Id (Base_Type (Root_Type (PtrT))), Loc));
                   end if;
 
@@ -4735,7 +4742,7 @@ package body Exp_Ch4 is
                                       (Typ, Current_Scope))
                      then
                         Typ := Build_Default_Subtype (Typ, N);
-                        Set_Expression (N, New_Reference_To (Typ, Loc));
+                        Set_Expression (N, New_Occurrence_Of (Typ, Loc));
                      end if;
 
                      Discr := First_Elmt (Discriminant_Constraint (Typ));
@@ -4780,7 +4787,7 @@ package body Exp_Ch4 is
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => Temp,
                    Constant_Present    => True,
-                   Object_Definition   => New_Reference_To (Temp_Type, Loc),
+                   Object_Definition   => New_Occurrence_Of (Temp_Type, Loc),
                    Expression          => Nod);
 
                Set_Assignment_OK (Temp_Decl);
@@ -4806,7 +4813,7 @@ package body Exp_Ch4 is
                else
                   Insert_Action (N,
                     Make_Procedure_Call_Statement (Loc,
-                      Name                   => New_Reference_To (Init, Loc),
+                      Name                   => New_Occurrence_Of (Init, Loc),
                       Parameter_Associations => Args));
                end if;
 
@@ -4857,7 +4864,7 @@ package body Exp_Ch4 is
                   end if;
                end if;
 
-               Rewrite (N, New_Reference_To (Temp, Loc));
+               Rewrite (N, New_Occurrence_Of (Temp, Loc));
                Analyze_And_Resolve (N, PtrT);
             end if;
          end if;
@@ -4962,7 +4969,7 @@ package body Exp_Ch4 is
              Type_Definition     =>
                Make_Access_To_Object_Definition (Loc,
                  All_Present        => True,
-                 Subtype_Indication => New_Reference_To (Typ, Loc))));
+                 Subtype_Indication => New_Occurrence_Of (Typ, Loc))));
          Ttyp := Pnn;
       end if;
 
@@ -5272,7 +5279,7 @@ package body Exp_Ch4 is
              Type_Definition     =>
                Make_Access_To_Object_Definition (Loc,
                  All_Present        => True,
-                 Subtype_Indication => New_Reference_To (Typ, Loc))));
+                 Subtype_Indication => New_Occurrence_Of (Typ, Loc))));
 
          --  Generate:
          --    Cnn : Ann;
@@ -5296,7 +5303,7 @@ package body Exp_Ch4 is
              Condition       => Relocate_Node (Cond),
              Then_Statements => New_List (
                Make_Assignment_Statement (Sloc (Thenx),
-                 Name       => New_Reference_To (Cnn, Sloc (Thenx)),
+                 Name       => New_Occurrence_Of (Cnn, Sloc (Thenx)),
                  Expression =>
                    Make_Attribute_Reference (Loc,
                      Prefix         => Relocate_Node (Thenx),
@@ -5304,7 +5311,7 @@ package body Exp_Ch4 is
 
              Else_Statements => New_List (
                Make_Assignment_Statement (Sloc (Elsex),
-                 Name       => New_Reference_To (Cnn, Sloc (Elsex)),
+                 Name       => New_Occurrence_Of (Cnn, Sloc (Elsex)),
                  Expression =>
                    Make_Attribute_Reference (Loc,
                      Prefix         => Relocate_Node (Elsex),
@@ -5604,7 +5611,7 @@ package body Exp_Ch4 is
                   Error_Msg_N ("\?c?value is known to be out of range", N);
                end if;
 
-               Rewrite (N, New_Reference_To (Standard_False, Loc));
+               Rewrite (N, New_Occurrence_Of (Standard_False, Loc));
                Analyze_And_Resolve (N, Restyp);
                Set_Is_Static_Expression (N, Static);
                goto Leave;
@@ -5618,7 +5625,7 @@ package body Exp_Ch4 is
                   Error_Msg_N ("\?c?value is known to be in range", N);
                end if;
 
-               Rewrite (N, New_Reference_To (Standard_True, Loc));
+               Rewrite (N, New_Occurrence_Of (Standard_True, Loc));
                Analyze_And_Resolve (N, Restyp);
                Set_Is_Static_Expression (N, Static);
                goto Leave;
@@ -5751,12 +5758,12 @@ package body Exp_Ch4 is
                       Low_Bound =>
                         Make_Attribute_Reference (Loc,
                           Attribute_Name => Name_First,
-                          Prefix         => New_Reference_To (Typ, Loc)),
+                          Prefix         => New_Occurrence_Of (Typ, Loc)),
 
                       High_Bound =>
                         Make_Attribute_Reference (Loc,
                           Attribute_Name => Name_Last,
-                          Prefix         => New_Reference_To (Typ, Loc))));
+                          Prefix         => New_Occurrence_Of (Typ, Loc))));
                   Analyze_And_Resolve (N, Restyp);
                end if;
 
@@ -5789,7 +5796,7 @@ package body Exp_Ch4 is
             end if;
 
             if not Is_Constrained (Typ) then
-               Rewrite (N, New_Reference_To (Standard_True, Loc));
+               Rewrite (N, New_Occurrence_Of (Standard_True, Loc));
                Analyze_And_Resolve (N, Restyp);
 
             --  For the constrained array case, we have to check the subscripts
@@ -6871,7 +6878,7 @@ package body Exp_Ch4 is
 
                   Rewrite (N,
                     Make_Function_Call (Loc,
-                      Name                   => New_Reference_To (Eq, Loc),
+                      Name                   => New_Occurrence_Of (Eq, Loc),
                       Parameter_Associations => Params));
                end;
             end;
@@ -6881,7 +6888,7 @@ package body Exp_Ch4 is
          else
             Rewrite (N,
               Make_Function_Call (Loc,
-                Name                   => New_Reference_To (Eq, Loc),
+                Name                   => New_Occurrence_Of (Eq, Loc),
                 Parameter_Associations => New_List (L_Exp, R_Exp)));
          end if;
 
@@ -7451,7 +7458,7 @@ package body Exp_Ch4 is
                      Make_Object_Declaration (Loc,
                        Defining_Identifier => Temp,
                        Constant_Present    => True,
-                       Object_Definition   => New_Reference_To (Typ, Loc),
+                       Object_Definition   => New_Occurrence_Of (Typ, Loc),
                        Expression =>
                          Make_Op_Multiply (Loc,
                            Left_Opnd  =>
@@ -7461,8 +7468,8 @@ package body Exp_Ch4 is
 
                    Expression =>
                      Make_Op_Multiply (Loc,
-                       Left_Opnd  => New_Reference_To (Temp, Loc),
-                       Right_Opnd => New_Reference_To (Temp, Loc)));
+                       Left_Opnd  => New_Occurrence_Of (Temp, Loc),
+                       Right_Opnd => New_Occurrence_Of (Temp, Loc)));
             end if;
 
             Rewrite (N, Xnode);
@@ -7551,7 +7558,7 @@ package body Exp_Ch4 is
             Rewrite (N,
               Convert_To (Typ,
                 Make_Function_Call (Loc,
-                  Name => New_Reference_To (RTE (RE_Exp_Modular), Loc),
+                  Name => New_Occurrence_Of (RTE (RE_Exp_Modular), Loc),
                   Parameter_Associations => New_List (
                     Convert_To (Standard_Integer, Base),
                     Make_Integer_Literal (Loc, Modulus (Rtyp)),
@@ -7573,7 +7580,7 @@ package body Exp_Ch4 is
                 Make_Op_And (Loc,
                   Left_Opnd =>
                     Make_Function_Call (Loc,
-                      Name => New_Reference_To (Ent, Loc),
+                      Name => New_Occurrence_Of (Ent, Loc),
                       Parameter_Associations => New_List (
                         Convert_To (Etype (First_Formal (Ent)), Base),
                         Exp)),
@@ -7640,7 +7647,7 @@ package body Exp_Ch4 is
       then
          Rewrite (N,
            Make_Function_Call (Loc,
-             Name                   => New_Reference_To (RTE (Rent), Loc),
+             Name                   => New_Occurrence_Of (RTE (Rent), Loc),
              Parameter_Associations => New_List (Base, Exp)));
 
       --  Otherwise we have to introduce conversions (conversions are also
@@ -7651,7 +7658,7 @@ package body Exp_Ch4 is
          Rewrite (N,
            Convert_To (Typ,
              Make_Function_Call (Loc,
-               Name => New_Reference_To (RTE (Rent), Loc),
+               Name => New_Occurrence_Of (RTE (Rent), Loc),
                Parameter_Associations => New_List (
                  Convert_To (Etyp, Base),
                  Exp))));
@@ -8640,13 +8647,13 @@ package body Exp_Ch4 is
 
       A_J :=
         Make_Indexed_Component (Loc,
-          Prefix      => New_Reference_To (A, Loc),
-          Expressions => New_List (New_Reference_To (J, Loc)));
+          Prefix      => New_Occurrence_Of (A, Loc),
+          Expressions => New_List (New_Occurrence_Of (J, Loc)));
 
       B_J :=
         Make_Indexed_Component (Loc,
-          Prefix      => New_Reference_To (B, Loc),
-          Expressions => New_List (New_Reference_To (J, Loc)));
+          Prefix      => New_Occurrence_Of (B, Loc),
+          Expressions => New_List (New_Occurrence_Of (J, Loc)));
 
       Loop_Statement :=
         Make_Implicit_Loop_Statement (N,
@@ -8678,13 +8685,13 @@ package body Exp_Ch4 is
               Parameter_Specifications => New_List (
                 Make_Parameter_Specification (Loc,
                   Defining_Identifier => A,
-                  Parameter_Type      => New_Reference_To (Typ, Loc))),
-              Result_Definition => New_Reference_To (Typ, Loc)),
+                  Parameter_Type      => New_Occurrence_Of (Typ, Loc))),
+              Result_Definition => New_Occurrence_Of (Typ, Loc)),
 
           Declarations => New_List (
             Make_Object_Declaration (Loc,
               Defining_Identifier => B,
-              Object_Definition   => New_Reference_To (Arr, Loc))),
+              Object_Definition   => New_Occurrence_Of (Arr, Loc))),
 
           Handled_Statement_Sequence =>
             Make_Handled_Sequence_Of_Statements (Loc,
@@ -8695,7 +8702,7 @@ package body Exp_Ch4 is
 
       Rewrite (N,
         Make_Function_Call (Loc,
-          Name                   => New_Reference_To (Func_Name, Loc),
+          Name                   => New_Occurrence_Of (Func_Name, Loc),
           Parameter_Associations => New_List (Opnd)));
 
       Analyze_And_Resolve (N, Typ);
@@ -10318,7 +10325,7 @@ package body Exp_Ch4 is
          begin
             R :=
               Make_Type_Conversion (Loc,
-                Subtype_Mark => New_Reference_To (Standard_Integer, Loc),
+                Subtype_Mark => New_Occurrence_Of (Standard_Integer, Loc),
                 Expression   => Relocate_Node (Right_Opnd (Operand)));
 
             Opnd := New_Op_Node (Nkind (Operand), Loc);
@@ -10327,7 +10334,7 @@ package body Exp_Ch4 is
             if Nkind (Operand) in N_Binary_Op then
                L :=
                  Make_Type_Conversion (Loc,
-                   Subtype_Mark => New_Reference_To (Standard_Integer, Loc),
+                   Subtype_Mark => New_Occurrence_Of (Standard_Integer, Loc),
                    Expression   => Relocate_Node (Left_Opnd (Operand)));
 
                Set_Left_Opnd  (Opnd, L);
@@ -10474,7 +10481,7 @@ package body Exp_Ch4 is
                           Left_Opnd  =>
                             Make_Explicit_Dereference (Loc,
                               Prefix => Duplicate_Subexpr_No_Checks (Operand)),
-                          Right_Opnd => New_Reference_To (Targ_Typ, Loc)));
+                          Right_Opnd => New_Occurrence_Of (Targ_Typ, Loc)));
 
                --  Generate:
                --    [Constraint_Error when Operand not in Targ_Typ]
@@ -10483,7 +10490,7 @@ package body Exp_Ch4 is
                   Cond :=
                     Make_Not_In (Loc,
                       Left_Opnd  => Duplicate_Subexpr_No_Checks (Operand),
-                      Right_Opnd => New_Reference_To (Targ_Typ, Loc));
+                      Right_Opnd => New_Occurrence_Of (Targ_Typ, Loc));
                end if;
 
                Insert_Action (N,
@@ -11111,7 +11118,7 @@ package body Exp_Ch4 is
       --     and then ...
       --     and then Lhs.Cmpn = Rhs.Cmpn
 
-      Result := New_Reference_To (Standard_True, Loc);
+      Result := New_Occurrence_Of (Standard_True, Loc);
       C := Element_To_Compare (First_Entity (Typ));
       while Present (C) loop
          declare
@@ -11134,11 +11141,11 @@ package body Exp_Ch4 is
                Lhs =>
                  Make_Selected_Component (Loc,
                    Prefix        => New_Lhs,
-                   Selector_Name => New_Reference_To (C, Loc)),
+                   Selector_Name => New_Occurrence_Of (C, Loc)),
                Rhs =>
                  Make_Selected_Component (Loc,
                    Prefix        => New_Rhs,
-                   Selector_Name => New_Reference_To (C, Loc)),
+                   Selector_Name => New_Occurrence_Of (C, Loc)),
                Bodies => Bodies);
 
             --  If some (sub)component is an unchecked_union, the whole
@@ -11531,7 +11538,7 @@ package body Exp_Ch4 is
         Make_Object_Declaration (Loc,
           Defining_Identifier => Addr,
           Object_Definition   =>
-            New_Reference_To (RTE (RE_Address), Loc),
+            New_Occurrence_Of (RTE (RE_Address), Loc),
           Expression          =>
             Make_Attribute_Reference (Loc,
               Prefix         => Duplicate_Subexpr_Move_Checks (N),
@@ -11553,7 +11560,7 @@ package body Exp_Ch4 is
           Defining_Identifier => Size,
 
           Object_Definition   =>
-            New_Reference_To (RTE (RE_Storage_Count), Loc),
+            New_Occurrence_Of (RTE (RE_Storage_Count), Loc),
 
           Expression          =>
             Make_Op_Divide (Loc,
@@ -11578,7 +11585,7 @@ package body Exp_Ch4 is
         Make_Object_Declaration (Loc,
           Defining_Identifier => Alig,
           Object_Definition   =>
-            New_Reference_To (RTE (RE_Storage_Count), Loc),
+            New_Occurrence_Of (RTE (RE_Storage_Count), Loc),
           Expression          =>
             Make_Attribute_Reference (Loc,
               Prefix         => Deref,
@@ -11599,11 +11606,11 @@ package body Exp_Ch4 is
          Stmt :=
            Make_Procedure_Call_Statement (Loc,
              Name                   =>
-               New_Reference_To (RTE (RE_Adjust_Controlled_Dereference), Loc),
+               New_Occurrence_Of (RTE (RE_Adjust_Controlled_Dereference), Loc),
              Parameter_Associations => New_List (
-               New_Reference_To (Addr, Loc),
-               New_Reference_To (Size, Loc),
-               New_Reference_To (Alig, Loc)));
+               New_Occurrence_Of (Addr, Loc),
+               New_Occurrence_Of (Size, Loc),
+               New_Occurrence_Of (Alig, Loc)));
 
          --  Class-wide types complicate things because we cannot determine
          --  statically whether the actual object is truly controlled. We must
@@ -11624,7 +11631,7 @@ package body Exp_Ch4 is
                 Condition       =>
                   Make_Function_Call (Loc,
                     Name                   =>
-                      New_Reference_To (RTE (RE_Needs_Finalization), Loc),
+                      New_Occurrence_Of (RTE (RE_Needs_Finalization), Loc),
                     Parameter_Associations => New_List (
                       Make_Attribute_Reference (Loc,
                         Prefix         => Deref,
@@ -11641,13 +11648,13 @@ package body Exp_Ch4 is
       Insert_Action (N,
         Make_Procedure_Call_Statement (Loc,
           Name                   =>
-            New_Reference_To
+            New_Occurrence_Of
               (Find_Prim_Op (Etype (Pool), Name_Dereference), Loc),
           Parameter_Associations => New_List (
-            New_Reference_To (Pool, Loc),
-            New_Reference_To (Addr, Loc),
-            New_Reference_To (Size, Loc),
-            New_Reference_To (Alig, Loc))));
+            New_Occurrence_Of (Pool, Loc),
+            New_Occurrence_Of (Addr, Loc),
+            New_Occurrence_Of (Size, Loc),
+            New_Occurrence_Of (Alig, Loc))));
 
       --  Mark the explicit dereference as processed to avoid potential
       --  infinite expansion.
@@ -11782,10 +11789,10 @@ package body Exp_Ch4 is
         Make_Implicit_If_Statement (Nod,
           Condition =>
             Make_Op_Eq (Loc,
-              Left_Opnd => New_Reference_To (J, Loc),
+              Left_Opnd => New_Occurrence_Of (J, Loc),
               Right_Opnd =>
                 Make_Attribute_Reference (Loc,
-                  Prefix => New_Reference_To (Y, Loc),
+                  Prefix => New_Occurrence_Of (Y, Loc),
                   Attribute_Name => Name_Last)),
 
           Then_Statements => New_List (
@@ -11794,12 +11801,12 @@ package body Exp_Ch4 is
           Else_Statements =>
             New_List (
               Make_Assignment_Statement (Loc,
-                Name => New_Reference_To (J, Loc),
+                Name => New_Occurrence_Of (J, Loc),
                 Expression =>
                   Make_Attribute_Reference (Loc,
-                    Prefix => New_Reference_To (Index, Loc),
+                    Prefix => New_Occurrence_Of (Index, Loc),
                     Attribute_Name => Name_Succ,
-                    Expressions => New_List (New_Reference_To (J, Loc))))));
+                    Expressions => New_List (New_Occurrence_Of (J, Loc))))));
 
       --  if X (I) = Y (J) then
       --     if ... end if;
@@ -11813,13 +11820,13 @@ package body Exp_Ch4 is
             Make_Op_Eq (Loc,
               Left_Opnd =>
                 Make_Indexed_Component (Loc,
-                  Prefix      => New_Reference_To (X, Loc),
-                  Expressions => New_List (New_Reference_To (I, Loc))),
+                  Prefix      => New_Occurrence_Of (X, Loc),
+                  Expressions => New_List (New_Occurrence_Of (I, Loc))),
 
               Right_Opnd =>
                 Make_Indexed_Component (Loc,
-                  Prefix      => New_Reference_To (Y, Loc),
-                  Expressions => New_List (New_Reference_To (J, Loc)))),
+                  Prefix      => New_Occurrence_Of (Y, Loc),
+                  Expressions => New_List (New_Occurrence_Of (J, Loc)))),
 
           Then_Statements => New_List (Inner_If),
 
@@ -11829,14 +11836,14 @@ package body Exp_Ch4 is
                 Make_Op_Gt (Loc,
                   Left_Opnd =>
                     Make_Indexed_Component (Loc,
-                      Prefix      => New_Reference_To (X, Loc),
-                      Expressions => New_List (New_Reference_To (I, Loc))),
+                      Prefix      => New_Occurrence_Of (X, Loc),
+                      Expressions => New_List (New_Occurrence_Of (I, Loc))),
 
                   Right_Opnd =>
                     Make_Indexed_Component (Loc,
-                      Prefix      => New_Reference_To (Y, Loc),
+                      Prefix      => New_Occurrence_Of (Y, Loc),
                       Expressions => New_List (
-                        New_Reference_To (J, Loc)))))));
+                        New_Occurrence_Of (J, Loc)))))));
 
       --  for I in X'range loop
       --     if ... end if;
@@ -11853,7 +11860,7 @@ package body Exp_Ch4 is
                   Defining_Identifier => I,
                   Discrete_Subtype_Definition =>
                     Make_Attribute_Reference (Loc,
-                      Prefix => New_Reference_To (X, Loc),
+                      Prefix => New_Occurrence_Of (X, Loc),
                       Attribute_Name => Name_Range))),
 
           Statements => New_List (Loop_Body));
@@ -11869,12 +11876,12 @@ package body Exp_Ch4 is
 
       Length1 :=
         Make_Attribute_Reference (Loc,
-          Prefix => New_Reference_To (X, Loc),
+          Prefix => New_Occurrence_Of (X, Loc),
           Attribute_Name => Name_Length);
 
       Length2 :=
         Make_Attribute_Reference (Loc,
-          Prefix => New_Reference_To (Y, Loc),
+          Prefix => New_Occurrence_Of (Y, Loc),
           Attribute_Name => Name_Length);
 
       Final_Expr :=
@@ -11888,7 +11895,7 @@ package body Exp_Ch4 is
             Make_Op_Eq (Loc,
               Left_Opnd =>
                 Make_Attribute_Reference (Loc,
-                  Prefix => New_Reference_To (X, Loc),
+                  Prefix => New_Occurrence_Of (X, Loc),
                   Attribute_Name => Name_Length),
               Right_Opnd =>
                 Make_Integer_Literal (Loc, 0)),
@@ -11896,7 +11903,7 @@ package body Exp_Ch4 is
           Then_Statements =>
             New_List (
               Make_Simple_Return_Statement (Loc,
-                Expression => New_Reference_To (Standard_False, Loc))),
+                Expression => New_Occurrence_Of (Standard_False, Loc))),
 
           Elsif_Parts => New_List (
             Make_Elsif_Part (Loc,
@@ -11904,7 +11911,7 @@ package body Exp_Ch4 is
                 Make_Op_Eq (Loc,
                   Left_Opnd =>
                     Make_Attribute_Reference (Loc,
-                      Prefix => New_Reference_To (Y, Loc),
+                      Prefix => New_Occurrence_Of (Y, Loc),
                       Attribute_Name => Name_Length),
                   Right_Opnd =>
                     Make_Integer_Literal (Loc, 0)),
@@ -11912,7 +11919,7 @@ package body Exp_Ch4 is
               Then_Statements =>
                 New_List (
                   Make_Simple_Return_Statement (Loc,
-                     Expression => New_Reference_To (Standard_True, Loc))))),
+                     Expression => New_Occurrence_Of (Standard_True, Loc))))),
 
           Else_Statements => New_List (
             Loop_Statement,
@@ -11924,11 +11931,11 @@ package body Exp_Ch4 is
       Formals := New_List (
         Make_Parameter_Specification (Loc,
           Defining_Identifier => X,
-          Parameter_Type      => New_Reference_To (Typ, Loc)),
+          Parameter_Type      => New_Occurrence_Of (Typ, Loc)),
 
         Make_Parameter_Specification (Loc,
           Defining_Identifier => Y,
-          Parameter_Type      => New_Reference_To (Typ, Loc)));
+          Parameter_Type      => New_Occurrence_Of (Typ, Loc)));
 
       --  function Gnnn (...) return boolean is
       --    J : index := Y'first;
@@ -11944,15 +11951,15 @@ package body Exp_Ch4 is
             Make_Function_Specification (Loc,
               Defining_Unit_Name       => Func_Name,
               Parameter_Specifications => Formals,
-              Result_Definition => New_Reference_To (Standard_Boolean, Loc)),
+              Result_Definition => New_Occurrence_Of (Standard_Boolean, Loc)),
 
           Declarations => New_List (
             Make_Object_Declaration (Loc,
               Defining_Identifier => J,
-              Object_Definition   => New_Reference_To (Index, Loc),
+              Object_Definition   => New_Occurrence_Of (Index, Loc),
               Expression =>
                 Make_Attribute_Reference (Loc,
-                  Prefix => New_Reference_To (Y, Loc),
+                  Prefix => New_Occurrence_Of (Y, Loc),
                   Attribute_Name => Name_First))),
 
           Handled_Statement_Sequence =>
@@ -12004,18 +12011,18 @@ package body Exp_Ch4 is
    begin
       A_J :=
         Make_Indexed_Component (Loc,
-          Prefix      => New_Reference_To (A, Loc),
-          Expressions => New_List (New_Reference_To (J, Loc)));
+          Prefix      => New_Occurrence_Of (A, Loc),
+          Expressions => New_List (New_Occurrence_Of (J, Loc)));
 
       B_J :=
         Make_Indexed_Component (Loc,
-          Prefix      => New_Reference_To (B, Loc),
-          Expressions => New_List (New_Reference_To (J, Loc)));
+          Prefix      => New_Occurrence_Of (B, Loc),
+          Expressions => New_List (New_Occurrence_Of (J, Loc)));
 
       C_J :=
         Make_Indexed_Component (Loc,
-          Prefix      => New_Reference_To (C, Loc),
-          Expressions => New_List (New_Reference_To (J, Loc)));
+          Prefix      => New_Occurrence_Of (C, Loc),
+          Expressions => New_List (New_Occurrence_Of (J, Loc)));
 
       if Nkind (N) = N_Op_And then
          Op :=
@@ -12047,7 +12054,7 @@ package body Exp_Ch4 is
                   Defining_Identifier => J,
                   Discrete_Subtype_Definition =>
                     Make_Attribute_Reference (Loc,
-                      Prefix => New_Reference_To (A, Loc),
+                      Prefix => New_Occurrence_Of (A, Loc),
                       Attribute_Name => Name_Range))),
 
           Statements => New_List (
@@ -12058,11 +12065,11 @@ package body Exp_Ch4 is
       Formals := New_List (
         Make_Parameter_Specification (Loc,
           Defining_Identifier => A,
-          Parameter_Type      => New_Reference_To (Typ, Loc)),
+          Parameter_Type      => New_Occurrence_Of (Typ, Loc)),
 
         Make_Parameter_Specification (Loc,
           Defining_Identifier => B,
-          Parameter_Type      => New_Reference_To (Typ, Loc)));
+          Parameter_Type      => New_Occurrence_Of (Typ, Loc)));
 
       Func_Name := Make_Temporary (Loc, 'A');
       Set_Is_Inlined (Func_Name);
@@ -12073,19 +12080,19 @@ package body Exp_Ch4 is
             Make_Function_Specification (Loc,
               Defining_Unit_Name       => Func_Name,
               Parameter_Specifications => Formals,
-              Result_Definition        => New_Reference_To (Typ, Loc)),
+              Result_Definition        => New_Occurrence_Of (Typ, Loc)),
 
           Declarations => New_List (
             Make_Object_Declaration (Loc,
               Defining_Identifier => C,
-              Object_Definition   => New_Reference_To (Typ, Loc))),
+              Object_Definition   => New_Occurrence_Of (Typ, Loc))),
 
           Handled_Statement_Sequence =>
             Make_Handled_Sequence_Of_Statements (Loc,
               Statements => New_List (
                 Loop_Statement,
                 Make_Simple_Return_Statement (Loc,
-                  Expression => New_Reference_To (C, Loc)))));
+                  Expression => New_Occurrence_Of (C, Loc)))));
 
       return Func_Body;
    end Make_Boolean_Array_Op;
@@ -12742,7 +12749,7 @@ package body Exp_Ch4 is
           Type_Definition     =>
             Make_Access_To_Object_Definition (Loc,
               All_Present        => Ekind (Obj_Typ) = E_General_Access_Type,
-              Subtype_Indication => New_Reference_To (Desig_Typ, Loc))));
+              Subtype_Indication => New_Occurrence_Of (Desig_Typ, Loc))));
 
       --  Step 2: Create a temporary which acts as a hook to the transient
       --  controlled object. Generate:
@@ -12754,7 +12761,7 @@ package body Exp_Ch4 is
       Insert_Action (Hook_Context,
         Make_Object_Declaration (Loc,
           Defining_Identifier => Temp_Id,
-          Object_Definition   => New_Reference_To (Ptr_Id, Loc)));
+          Object_Definition   => New_Occurrence_Of (Ptr_Id, Loc)));
 
       --  Mark the temporary as created for the purposes of exporting the
       --  transient controlled object out of the expression_with_action or if
@@ -12778,11 +12785,12 @@ package body Exp_Ch4 is
       --  points to an existing object.
 
       if Is_Access_Type (Obj_Typ) then
-         Expr := Unchecked_Convert_To (Ptr_Id, New_Reference_To (Obj_Id, Loc));
+         Expr :=
+           Unchecked_Convert_To (Ptr_Id, New_Occurrence_Of (Obj_Id, Loc));
       else
          Expr :=
            Make_Attribute_Reference (Loc,
-             Prefix         => New_Reference_To (Obj_Id, Loc),
+             Prefix         => New_Occurrence_Of (Obj_Id, Loc),
              Attribute_Name => Name_Unrestricted_Access);
       end if;
 
@@ -12808,7 +12816,7 @@ package body Exp_Ch4 is
 
       Insert_After_And_Analyze (Temp_Ins,
         Make_Assignment_Statement (Loc,
-          Name       => New_Reference_To (Temp_Id, Loc),
+          Name       => New_Occurrence_Of (Temp_Id, Loc),
           Expression => Expr));
 
       --  Step 4: Finalize the transient controlled object after the context
@@ -12831,11 +12839,11 @@ package body Exp_Ch4 is
            Make_Final_Call
              (Obj_Ref =>
                 Make_Explicit_Dereference (Loc,
-                  Prefix => New_Reference_To (Temp_Id, Loc)),
+                  Prefix => New_Occurrence_Of (Temp_Id, Loc)),
               Typ     => Desig_Typ),
 
            Make_Assignment_Statement (Loc,
-             Name       => New_Reference_To (Temp_Id, Loc),
+             Name       => New_Occurrence_Of (Temp_Id, Loc),
              Expression => Make_Null (Loc)));
 
          if not Finalize_Always then
@@ -12843,7 +12851,7 @@ package body Exp_Ch4 is
               Make_Implicit_If_Statement (Decl,
                 Condition =>
                   Make_Op_Ne (Loc,
-                    Left_Opnd  => New_Reference_To (Temp_Id, Loc),
+                    Left_Opnd  => New_Occurrence_Of (Temp_Id, Loc),
                     Right_Opnd => Make_Null (Loc)),
                 Then_Statements => Fin_Stmts));
          end if;
@@ -13145,7 +13153,7 @@ package body Exp_Ch4 is
         Make_Selected_Component (Loc,
           Prefix        => Relocate_Node (Left),
           Selector_Name =>
-            New_Reference_To (First_Tag_Component (Left_Type), Loc));
+            New_Occurrence_Of (First_Tag_Component (Left_Type), Loc));
 
       if Is_Class_Wide_Type (Right_Type) then
 
@@ -13180,7 +13188,7 @@ package body Exp_Ch4 is
                                            (Typ   => Left_Type,
                                             Iface => Etype (Right_Type))))
          then
-            Result := New_Reference_To (Standard_True, Loc);
+            Result := New_Occurrence_Of (Standard_True, Loc);
             return;
          end if;
 
@@ -13209,7 +13217,7 @@ package body Exp_Ch4 is
                    Make_Attribute_Reference (Loc,
                      Prefix => Obj_Tag,
                      Attribute_Name => Name_Address),
-                   New_Reference_To (
+                   New_Occurrence_Of (
                      Node (First_Elmt (Access_Disp_Table (Full_R_Typ))),
                      Loc)));
 
@@ -13219,7 +13227,7 @@ package body Exp_Ch4 is
             Build_CW_Membership (Loc,
               Obj_Tag_Node => Obj_Tag,
               Typ_Tag_Node =>
-                 New_Reference_To (
+                 New_Occurrence_Of (
                    Node (First_Elmt (Access_Disp_Table (Full_R_Typ))),  Loc),
               Related_Nod => N,
               New_Node    => New_Node);
@@ -13243,14 +13251,14 @@ package body Exp_Ch4 is
          --  No need to check the tag of the object if Right_Typ is abstract
 
          if Is_Abstract_Type (Right_Type) then
-            Result := New_Reference_To (Standard_False, Loc);
+            Result := New_Occurrence_Of (Standard_False, Loc);
 
          else
             Result :=
               Make_Op_Eq (Loc,
                 Left_Opnd  => Obj_Tag,
                 Right_Opnd =>
-                  New_Reference_To
+                  New_Occurrence_Of
                     (Node (First_Elmt (Access_Disp_Table (Full_R_Typ))), Loc));
          end if;
       end if;
index 823e76e..10b280c 100644 (file)
@@ -793,7 +793,7 @@ package body Exp_Ch5 is
 
                   Rewrite (N,
                     Make_Procedure_Call_Statement (Loc,
-                      Name => New_Reference_To (Proc, Loc),
+                      Name => New_Occurrence_Of (Proc, Loc),
                       Parameter_Associations => Actuals));
                end;
 
@@ -859,7 +859,7 @@ package body Exp_Ch5 is
                              Expressions => New_List (
                                Make_Attribute_Reference (Loc,
                                  Prefix =>
-                                   New_Reference_To
+                                   New_Occurrence_Of
                                      (L_Index_Typ, Loc),
                                  Attribute_Name => Name_First))),
                          Attribute_Name => Name_Address)),
@@ -874,7 +874,7 @@ package body Exp_Ch5 is
                              Expressions => New_List (
                                Make_Attribute_Reference (Loc,
                                  Prefix =>
-                                   New_Reference_To
+                                   New_Occurrence_Of
                                      (R_Index_Typ, Loc),
                                  Attribute_Name => Name_First))),
                          Attribute_Name => Name_Address)));
@@ -942,7 +942,7 @@ package body Exp_Ch5 is
 
                   Rewrite (N,
                     Make_Procedure_Call_Statement (Loc,
-                      Name => New_Reference_To (Proc, Loc),
+                      Name => New_Occurrence_Of (Proc, Loc),
                       Parameter_Associations => Actuals));
                end;
 
@@ -1172,7 +1172,7 @@ package body Exp_Ch5 is
                            Defining_Identifier => Lnn (J),
                            Reverse_Present => Rev,
                            Discrete_Subtype_Definition =>
-                             New_Reference_To (L_Index_Type (J), Loc))),
+                             New_Occurrence_Of (L_Index_Type (J), Loc))),
 
                    Statements => New_List (Assign, Build_Step (J))))));
       end loop;
@@ -1629,10 +1629,10 @@ package body Exp_Ch5 is
 
                if Number_Entries (Conctyp) = 0 then
                   RT_Subprg_Name :=
-                    New_Reference_To (RTE (RE_Set_Ceiling), Loc);
+                    New_Occurrence_Of (RTE (RE_Set_Ceiling), Loc);
                else
                   RT_Subprg_Name :=
-                    New_Reference_To (RTE (RO_PE_Set_Ceiling), Loc);
+                    New_Occurrence_Of (RTE (RO_PE_Set_Ceiling), Loc);
                end if;
 
                Call :=
@@ -2177,7 +2177,7 @@ package body Exp_Ch5 is
 
                      Append_To (L,
                        Make_Procedure_Call_Statement (Loc,
-                         Name => New_Reference_To (Op, Loc),
+                         Name => New_Occurrence_Of (Op, Loc),
                          Parameter_Associations => New_List (
                            Node1 => Left_N,
                            Node2 => Right_N)));
@@ -2727,8 +2727,8 @@ package body Exp_Ch5 is
                     New_Occurrence_Of (Has_Element_Op, Loc),
                   Parameter_Associations =>
                     New_List
-                     (New_Reference_To (Container, Loc),
-                      New_Reference_To (Cursor, Loc)))),
+                     (New_Occurrence_Of (Container, Loc),
+                      New_Occurrence_Of (Cursor, Loc)))),
           Statements => Stats,
           End_Label  => Empty);
       Rewrite (N, New_Loop);
@@ -3204,7 +3204,7 @@ package body Exp_Ch5 is
                  Make_Object_Renaming_Declaration (Loc,
                    Defining_Identifier => Id,
                    Subtype_Mark     =>
-                     New_Reference_To (Element_Type, Loc),
+                     New_Occurrence_Of (Element_Type, Loc),
                    Name             =>
                      Make_Indexed_Component (Loc,
                        Prefix      => Relocate_Node (Container_Arg),
@@ -3296,10 +3296,10 @@ package body Exp_Ch5 is
               Make_Function_Call (Loc,
                 Name                   =>
                   Make_Selected_Component (Loc,
-                    Prefix        => New_Reference_To (Iterator, Loc),
+                    Prefix        => New_Occurrence_Of (Iterator, Loc),
                     Selector_Name => Make_Identifier (Loc, Name_Step)),
                 Parameter_Associations => New_List (
-                   New_Reference_To (Cursor, Loc)));
+                   New_Occurrence_Of (Cursor, Loc)));
 
             Append_To (Stats,
               Make_Assignment_Statement (Loc,
@@ -3324,7 +3324,7 @@ package body Exp_Ch5 is
                        New_Occurrence_Of (
                         Next_Entity (First_Entity (Pack)), Loc),
                      Parameter_Associations =>
-                       New_List (New_Reference_To (Cursor, Loc)))),
+                       New_List (New_Occurrence_Of (Cursor, Loc)))),
 
              Statements => Stats,
              End_Label  => Empty);
@@ -3364,7 +3364,7 @@ package body Exp_Ch5 is
                   New_Occurrence_Of (Etype (Cursor), Loc),
                 Expression          =>
                   Make_Selected_Component (Loc,
-                    Prefix        => New_Reference_To (Iterator, Loc),
+                    Prefix        => New_Occurrence_Of (Iterator, Loc),
                     Selector_Name =>
                       Make_Identifier (Loc, Name_Init)));
 
@@ -3426,13 +3426,13 @@ package body Exp_Ch5 is
          Ind_Comp :=
            Make_Indexed_Component (Loc,
              Prefix      => Relocate_Node (Array_Node),
-             Expressions => New_List (New_Reference_To (Iterator, Loc)));
+             Expressions => New_List (New_Occurrence_Of (Iterator, Loc)));
 
          Prepend_To (Stats,
            Make_Object_Renaming_Declaration (Loc,
              Defining_Identifier => Id,
              Subtype_Mark        =>
-               New_Reference_To (Component_Type (Array_Typ), Loc),
+               New_Occurrence_Of (Component_Type (Array_Typ), Loc),
              Name                => Ind_Comp));
 
          --  Mark the loop variable as needing debug info, so that expansion
@@ -3508,7 +3508,7 @@ package body Exp_Ch5 is
             --  the new iterator.
 
             Prepend_To (Expressions (Ind_Comp),
-              New_Reference_To (Iterator, Loc));
+              New_Occurrence_Of (Iterator, Loc));
          end loop;
       end if;
 
@@ -3631,16 +3631,16 @@ package body Exp_Ch5 is
                          Left_Opnd =>
                             Make_Integer_Literal (Loc,
                               Enumeration_Rep (First_Literal (Btype))),
-                         Right_Opnd => New_Reference_To (New_Id, Loc)));
+                         Right_Opnd => New_Occurrence_Of (New_Id, Loc)));
                else
                   --  Use the constructed array Enum_Pos_To_Rep
 
                   Expr :=
                     Make_Indexed_Component (Loc,
                       Prefix      =>
-                        New_Reference_To (Enum_Pos_To_Rep (Btype), Loc),
+                        New_Occurrence_Of (Enum_Pos_To_Rep (Btype), Loc),
                       Expressions =>
-                        New_List (New_Reference_To (New_Id, Loc)));
+                        New_List (New_Occurrence_Of (New_Id, Loc)));
                end if;
 
                --  Build declaration for loop identifier
@@ -3650,7 +3650,7 @@ package body Exp_Ch5 is
                    Make_Object_Declaration (Loc,
                      Defining_Identifier => Loop_Id,
                      Constant_Present    => True,
-                     Object_Definition   => New_Reference_To (Ltype, Loc),
+                     Object_Definition   => New_Occurrence_Of (Ltype, Loc),
                      Expression          => Expr));
 
                Rewrite (N,
@@ -3668,7 +3668,7 @@ package body Exp_Ch5 is
                              Make_Subtype_Indication (Loc,
 
                                Subtype_Mark =>
-                                 New_Reference_To (Standard_Natural, Loc),
+                                 New_Occurrence_Of (Standard_Natural, Loc),
 
                                Constraint =>
                                  Make_Range_Constraint (Loc,
@@ -3678,7 +3678,7 @@ package body Exp_Ch5 is
                                        Low_Bound =>
                                          Make_Attribute_Reference (Loc,
                                            Prefix =>
-                                             New_Reference_To (Btype, Loc),
+                                             New_Occurrence_Of (Btype, Loc),
 
                                            Attribute_Name => Name_Pos,
 
@@ -3689,7 +3689,7 @@ package body Exp_Ch5 is
                                        High_Bound =>
                                          Make_Attribute_Reference (Loc,
                                            Prefix =>
-                                             New_Reference_To (Btype, Loc),
+                                             New_Occurrence_Of (Btype, Loc),
 
                                            Attribute_Name => Name_Pos,
 
@@ -4087,12 +4087,12 @@ package body Exp_Ch5 is
          Append_To (Res,
            Make_Object_Declaration (Loc,
              Defining_Identifier => Tag_Id,
-             Object_Definition   => New_Reference_To (RTE (RE_Tag), Loc),
+             Object_Definition   => New_Occurrence_Of (RTE (RE_Tag), Loc),
              Expression          =>
                Make_Selected_Component (Loc,
                  Prefix        => Duplicate_Subexpr_No_Checks (L),
                  Selector_Name =>
-                   New_Reference_To (First_Tag_Component (T), Loc))));
+                   New_Occurrence_Of (First_Tag_Component (T), Loc))));
 
       --  Otherwise Tag_Id is not used
 
@@ -4116,7 +4116,7 @@ package body Exp_Ch5 is
            Make_Object_Declaration (Loc,
              Defining_Identifier => Prev_Id,
              Object_Definition   =>
-               New_Reference_To (RTE (RE_Root_Controlled_Ptr), Loc),
+               New_Occurrence_Of (RTE (RE_Root_Controlled_Ptr), Loc),
              Expression          =>
                Make_Selected_Component (Loc,
                  Prefix        =>
@@ -4132,7 +4132,7 @@ package body Exp_Ch5 is
            Make_Object_Declaration (Loc,
              Defining_Identifier => Next_Id,
              Object_Definition   =>
-               New_Reference_To (RTE (RE_Root_Controlled_Ptr), Loc),
+               New_Occurrence_Of (RTE (RE_Root_Controlled_Ptr), Loc),
              Expression          =>
                Make_Selected_Component (Loc,
                  Prefix        =>
@@ -4163,8 +4163,8 @@ package body Exp_Ch5 is
                Make_Selected_Component (Loc,
                  Prefix        => Duplicate_Subexpr_No_Checks (L),
                  Selector_Name =>
-                   New_Reference_To (First_Tag_Component (T), Loc)),
-             Expression => New_Reference_To (Tag_Id, Loc)));
+                   New_Occurrence_Of (First_Tag_Component (T), Loc)),
+             Expression => New_Occurrence_Of (Tag_Id, Loc)));
       end if;
 
       --  Restore the Prev and Next fields on .NET/JVM
@@ -4184,7 +4184,7 @@ package body Exp_Ch5 is
                      (RTE (RE_Root_Controlled), New_Copy_Tree (L)),
                  Selector_Name =>
                    Make_Identifier (Loc, Name_Prev)),
-             Expression => New_Reference_To (Prev_Id, Loc)));
+             Expression => New_Occurrence_Of (Prev_Id, Loc)));
 
          --  Generate:
          --    Root_Controlled (L).Next := Next_Id;
@@ -4197,7 +4197,7 @@ package body Exp_Ch5 is
                    Unchecked_Convert_To
                      (RTE (RE_Root_Controlled), New_Copy_Tree (L)),
                  Selector_Name => Make_Identifier (Loc, Name_Next)),
-             Expression => New_Reference_To (Next_Id, Loc)));
+             Expression => New_Occurrence_Of (Next_Id, Loc)));
       end if;
 
       --  Adjust the target after the assignment when controlled (not in the
index ccf8579..5ffea6a 100644 (file)
@@ -408,7 +408,7 @@ package body Exp_Ch6 is
                Actual :=
                  Make_Attribute_Reference (Loc,
                    Prefix =>
-                     New_Reference_To (Finalization_Master (Ptr_Typ), Loc),
+                     New_Occurrence_Of (Finalization_Master (Ptr_Typ), Loc),
                    Attribute_Name => Name_Unrestricted_Access);
 
             --  Tagged types
@@ -515,7 +515,7 @@ package body Exp_Ch6 is
       --  the actual is an entity and requires an explicit reference.
 
       elsif Nkind (Actual) = N_Defining_Identifier then
-         Actual := New_Reference_To (Actual, Loc);
+         Actual := New_Occurrence_Of (Actual, Loc);
       end if;
 
       --  Locate the implicit master parameter in the called function
@@ -1154,7 +1154,7 @@ package body Exp_Ch6 is
          --  For IN parameter, all we do is to replace the actual
 
          if Ekind (Formal) = E_In_Parameter then
-            Rewrite (Actual, New_Reference_To (Temp, Loc));
+            Rewrite (Actual, New_Occurrence_Of (Temp, Loc));
             Analyze (Actual);
 
          --  Processing for OUT or IN OUT parameter
@@ -1178,7 +1178,7 @@ package body Exp_Ch6 is
                Expr := New_Occurrence_Of (Temp, Loc);
             end if;
 
-            Rewrite (Actual, New_Reference_To (Temp, Loc));
+            Rewrite (Actual, New_Occurrence_Of (Temp, Loc));
             Analyze (Actual);
 
             --  If the actual is a conversion of a packed reference, it may
@@ -1809,7 +1809,7 @@ package body Exp_Ch6 is
                if In_Open_Scopes (Entity (Actual)) then
                   Rewrite (Actual,
                     (Make_Function_Call (Loc,
-                     Name => New_Reference_To (RTE (RE_Self), Loc))));
+                     Name => New_Occurrence_Of (RTE (RE_Self), Loc))));
                   Analyze (Actual);
 
                --  A task type cannot otherwise appear as an actual
@@ -2555,7 +2555,7 @@ package body Exp_Ch6 is
             Rewrite (N,
               Make_Procedure_Call_Statement (Loc,
                 Name =>
-                  New_Reference_To (Deep_Fin, Loc),
+                  New_Occurrence_Of (Deep_Fin, Loc),
                 Parameter_Associations =>
                   New_Copy_List_Tree (Parameter_Associations (N))));
 
@@ -3418,8 +3418,8 @@ package body Exp_Ch6 is
                                Make_Selected_Component (Loc,
                                  Prefix        => New_Value (Param),
                                  Selector_Name =>
-                                   New_Reference_To (First_Tag_Component (Typ),
-                                                     Loc)),
+                                   New_Occurrence_Of
+                                     (First_Tag_Component (Typ), Loc)),
 
                              Right_Opnd =>
                                Make_Selected_Component (Loc,
@@ -3427,7 +3427,7 @@ package body Exp_Ch6 is
                                    Unchecked_Convert_To (Typ,
                                      New_Value (Next_Actual (Param))),
                                  Selector_Name =>
-                                   New_Reference_To
+                                   New_Occurrence_Of
                                      (First_Tag_Component (Typ), Loc))),
                       Right_Opnd => Prev_Call);
 
@@ -4248,7 +4248,7 @@ package body Exp_Ch6 is
       begin
          if No (Exit_Lab) then
             Lab_Ent := Make_Temporary (Loc, 'L');
-            Lab_Id  := New_Reference_To (Lab_Ent, Loc);
+            Lab_Id  := New_Occurrence_Of (Lab_Ent, Loc);
             Exit_Lab := Make_Label (Loc, Lab_Id);
             Lab_Decl :=
               Make_Implicit_Label_Declaration (Loc,
@@ -5172,7 +5172,7 @@ package body Exp_Ch6 is
 
             Remove (First (Parameter_Associations (Blk_Call_Stmt)));
             Prepend_To (Parameter_Associations (Blk_Call_Stmt),
-              New_Reference_To (Targ, Loc));
+              New_Occurrence_Of (Targ, Loc));
          end;
 
          --  Remove the return statement
@@ -5432,17 +5432,17 @@ package body Exp_Ch6 is
                  Make_Object_Renaming_Declaration (Loc,
                    Defining_Identifier => Pool_Id,
                    Subtype_Mark        =>
-                     New_Reference_To (RTE (RE_Root_Storage_Pool), Loc),
+                     New_Occurrence_Of (RTE (RE_Root_Storage_Pool), Loc),
                    Name                =>
                      Make_Explicit_Dereference (Loc,
                        Prefix =>
                          Make_Function_Call (Loc,
                            Name                   =>
-                             New_Reference_To (RTE (RE_Base_Pool), Loc),
+                             New_Occurrence_Of (RTE (RE_Base_Pool), Loc),
                            Parameter_Associations => New_List (
                              Make_Explicit_Dereference (Loc,
                                Prefix =>
-                                 New_Reference_To (Fin_Mas_Id, Loc)))))));
+                                 New_Occurrence_Of (Fin_Mas_Id, Loc)))))));
 
                --  Create an access type which uses the storage pool of the
                --  caller's master. This additional type is necessary because
@@ -5472,7 +5472,7 @@ package body Exp_Ch6 is
                    Type_Definition     =>
                      Make_Access_To_Object_Definition (Loc,
                        Subtype_Indication =>
-                         New_Reference_To (Desig_Typ, Loc))));
+                         New_Occurrence_Of (Desig_Typ, Loc))));
 
                --  Perform minor decoration in order to set the master and the
                --  storage pool attributes.
@@ -5490,14 +5490,14 @@ package body Exp_Ch6 is
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => Local_Id,
                    Object_Definition   =>
-                     New_Reference_To (Ptr_Typ, Loc)));
+                     New_Occurrence_Of (Ptr_Typ, Loc)));
 
                --  Allocate the object, generate:
                --    Local_Id := <Alloc_Expr>;
 
                Append_To (Stmts,
                  Make_Assignment_Statement (Loc,
-                   Name       => New_Reference_To (Local_Id, Loc),
+                   Name       => New_Occurrence_Of (Local_Id, Loc),
                    Expression => Alloc_Expr));
 
                --  Generate:
@@ -5505,10 +5505,10 @@ package body Exp_Ch6 is
 
                Append_To (Stmts,
                  Make_Assignment_Statement (Loc,
-                   Name       => New_Reference_To (Temp_Id, Loc),
+                   Name       => New_Occurrence_Of (Temp_Id, Loc),
                    Expression =>
                      Unchecked_Convert_To (Temp_Typ,
-                       New_Reference_To (Local_Id, Loc))));
+                       New_Occurrence_Of (Local_Id, Loc))));
 
                --  Wrap the allocation in a block. This is further conditioned
                --  by checking the caller finalization master at runtime. A
@@ -5528,7 +5528,7 @@ package body Exp_Ch6 is
                  Make_If_Statement (Loc,
                    Condition       =>
                      Make_Op_Ne (Loc,
-                       Left_Opnd  => New_Reference_To (Fin_Mas_Id, Loc),
+                       Left_Opnd  => New_Occurrence_Of (Fin_Mas_Id, Loc),
                        Right_Opnd => Make_Null (Loc)),
 
                    Then_Statements => New_List (
@@ -5545,7 +5545,7 @@ package body Exp_Ch6 is
          else
             return
               Make_Assignment_Statement (Loc,
-                Name       => New_Reference_To (Temp_Id, Loc),
+                Name       => New_Occurrence_Of (Temp_Id, Loc),
                 Expression => Alloc_Expr);
          end if;
       end Build_Heap_Allocator;
@@ -5559,7 +5559,7 @@ package body Exp_Ch6 is
          return
            Make_Procedure_Call_Statement (Loc,
              Name                   =>
-               New_Reference_To (RTE (RE_Move_Activation_Chain), Loc),
+               New_Occurrence_Of (RTE (RE_Move_Activation_Chain), Loc),
 
              Parameter_Associations => New_List (
 
@@ -5571,12 +5571,12 @@ package body Exp_Ch6 is
 
                --  Destination chain
 
-               New_Reference_To
+               New_Occurrence_Of
                  (Build_In_Place_Formal (Par_Func, BIP_Activation_Chain), Loc),
 
                --  New master
 
-               New_Reference_To
+               New_Occurrence_Of
                  (Build_In_Place_Formal (Par_Func, BIP_Task_Master), Loc)));
       end Move_Activation_Chain;
 
@@ -5633,8 +5633,9 @@ package body Exp_Ch6 is
               Make_Object_Declaration (Loc,
                 Defining_Identifier => Flag_Id,
                   Object_Definition =>
-                    New_Reference_To (Standard_Boolean, Loc),
-                  Expression        => New_Reference_To (Standard_False, Loc));
+                    New_Occurrence_Of (Standard_Boolean, Loc),
+                  Expression        =>
+                    New_Occurrence_Of (Standard_False, Loc));
 
             Prepend_To (Declarations (Func_Bod), Flag_Decl);
             Analyze (Flag_Decl);
@@ -5710,8 +5711,8 @@ package body Exp_Ch6 is
 
                Append_To (Stmts,
                  Make_Assignment_Statement (Loc,
-                   Name       => New_Reference_To (Flag_Id, Loc),
-                   Expression => New_Reference_To (Standard_True, Loc)));
+                   Name       => New_Occurrence_Of (Flag_Id, Loc),
+                   Expression => New_Occurrence_Of (Standard_True, Loc)));
             end;
          end if;
 
@@ -5829,7 +5830,7 @@ package body Exp_Ch6 is
                then
                   Init_Assignment :=
                     Make_Assignment_Statement (Loc,
-                      Name       => New_Reference_To (Return_Obj_Id, Loc),
+                      Name       => New_Occurrence_Of (Return_Obj_Id, Loc),
                       Expression => Relocate_Node (Return_Obj_Expr));
 
                   Set_Etype (Name (Init_Assignment), Etype (Return_Obj_Id));
@@ -5924,7 +5925,7 @@ package body Exp_Ch6 is
                            Make_Access_To_Object_Definition (Loc,
                              All_Present        => True,
                              Subtype_Indication =>
-                               New_Reference_To (Return_Obj_Typ, Loc)));
+                               New_Occurrence_Of (Return_Obj_Typ, Loc)));
 
                      Insert_Before (Ret_Obj_Decl, Ptr_Type_Decl);
 
@@ -5940,7 +5941,7 @@ package body Exp_Ch6 is
                        Make_Object_Declaration (Loc,
                          Defining_Identifier => Alloc_Obj_Id,
                          Object_Definition   =>
-                           New_Reference_To (Ref_Type, Loc));
+                           New_Occurrence_Of (Ref_Type, Loc));
 
                      Insert_Before (Ret_Obj_Decl, Alloc_Obj_Decl);
 
@@ -5964,7 +5965,7 @@ package body Exp_Ch6 is
                             Expression =>
                               Make_Qualified_Expression (Loc,
                                 Subtype_Mark =>
-                                  New_Reference_To
+                                  New_Occurrence_Of
                                     (Etype (Return_Obj_Expr), Loc),
                                 Expression   =>
                                   New_Copy_Tree (Return_Obj_Expr)));
@@ -5979,13 +5980,13 @@ package body Exp_Ch6 is
                            Heap_Allocator :=
                              Make_Allocator (Loc,
                                Expression =>
-                                 New_Reference_To
+                                 New_Occurrence_Of
                                    (Etype (Return_Obj_Expr), Loc));
                         else
                            Heap_Allocator :=
                              Make_Allocator (Loc,
                                Expression =>
-                                 New_Reference_To (Return_Obj_Typ, Loc));
+                                 New_Occurrence_Of (Return_Obj_Typ, Loc));
                         end if;
 
                         --  If the object requires default initialization then
@@ -6013,11 +6014,11 @@ package body Exp_Ch6 is
                           Make_Object_Renaming_Declaration (Loc,
                             Defining_Identifier => Pool_Id,
                             Subtype_Mark        =>
-                              New_Reference_To
+                              New_Occurrence_Of
                                 (RTE (RE_Root_Storage_Pool), Loc),
                             Name                =>
                               Make_Explicit_Dereference (Loc,
-                                New_Reference_To
+                                New_Occurrence_Of
                                   (Build_In_Place_Formal
                                      (Par_Func, BIP_Storage_Pool), Loc)));
                         Set_Storage_Pool (Pool_Allocator, Pool_Id);
@@ -6104,7 +6105,7 @@ package body Exp_Ch6 is
                          Condition =>
                            Make_Op_Eq (Loc,
                              Left_Opnd  =>
-                               New_Reference_To (Obj_Alloc_Formal, Loc),
+                               New_Occurrence_Of (Obj_Alloc_Formal, Loc),
                              Right_Opnd =>
                                Make_Integer_Literal (Loc,
                                  UI_From_Int (BIP_Allocation_Form'Pos
@@ -6113,20 +6114,20 @@ package body Exp_Ch6 is
                          Then_Statements => New_List (
                            Make_Assignment_Statement (Loc,
                              Name       =>
-                               New_Reference_To (Alloc_Obj_Id, Loc),
+                               New_Occurrence_Of (Alloc_Obj_Id, Loc),
                              Expression =>
                                Make_Unchecked_Type_Conversion (Loc,
                                  Subtype_Mark =>
-                                   New_Reference_To (Ref_Type, Loc),
+                                   New_Occurrence_Of (Ref_Type, Loc),
                                  Expression   =>
-                                   New_Reference_To (Object_Access, Loc)))),
+                                   New_Occurrence_Of (Object_Access, Loc)))),
 
                          Elsif_Parts => New_List (
                            Make_Elsif_Part (Loc,
                              Condition =>
                                Make_Op_Eq (Loc,
                                  Left_Opnd  =>
-                                   New_Reference_To (Obj_Alloc_Formal, Loc),
+                                   New_Occurrence_Of (Obj_Alloc_Formal, Loc),
                                  Right_Opnd =>
                                    Make_Integer_Literal (Loc,
                                      UI_From_Int (BIP_Allocation_Form'Pos
@@ -6135,14 +6136,14 @@ package body Exp_Ch6 is
                              Then_Statements => New_List (
                                Make_Assignment_Statement (Loc,
                                  Name       =>
-                                   New_Reference_To (Alloc_Obj_Id, Loc),
+                                   New_Occurrence_Of (Alloc_Obj_Id, Loc),
                                  Expression => SS_Allocator))),
 
                            Make_Elsif_Part (Loc,
                              Condition =>
                                Make_Op_Eq (Loc,
                                  Left_Opnd  =>
-                                   New_Reference_To (Obj_Alloc_Formal, Loc),
+                                   New_Occurrence_Of (Obj_Alloc_Formal, Loc),
                                  Right_Opnd =>
                                    Make_Integer_Literal (Loc,
                                      UI_From_Int (BIP_Allocation_Form'Pos
@@ -6176,7 +6177,7 @@ package body Exp_Ch6 is
                      if Present (Init_Assignment) then
                         Rewrite (Name (Init_Assignment),
                           Make_Explicit_Dereference (Loc,
-                            Prefix => New_Reference_To (Alloc_Obj_Id, Loc)));
+                            Prefix => New_Occurrence_Of (Alloc_Obj_Id, Loc)));
 
                         Set_Etype
                           (Name (Init_Assignment), Etype (Return_Obj_Id));
@@ -6200,7 +6201,7 @@ package body Exp_Ch6 is
 
                Obj_Acc_Deref :=
                  Make_Explicit_Dereference (Loc,
-                   Prefix => New_Reference_To (Object_Access, Loc));
+                   Prefix => New_Occurrence_Of (Object_Access, Loc));
 
                Rewrite (Ret_Obj_Decl,
                  Make_Object_Renaming_Declaration (Loc,
@@ -6420,7 +6421,8 @@ package body Exp_Ch6 is
                   Insert_Action (Rtn,
                     Make_Procedure_Call_Statement (Loc,
                       Name =>
-                        New_Reference_To (Postcondition_Proc (Spec_Id), Loc)));
+                        New_Occurrence_Of
+                          (Postcondition_Proc (Spec_Id), Loc)));
                end if;
             end;
          end if;
@@ -6882,7 +6884,7 @@ package body Exp_Ch6 is
          pragma Assert (Present (Postcondition_Proc (Scope_Id)));
          Insert_Action (N,
            Make_Procedure_Call_Statement (Loc,
-             Name => New_Reference_To (Postcondition_Proc (Scope_Id), Loc)));
+             Name => New_Occurrence_Of (Postcondition_Proc (Scope_Id), Loc)));
       end if;
 
       --  If it is a return from a procedure do no extra steps
@@ -6924,7 +6926,7 @@ package body Exp_Ch6 is
 
          Call :=
            Make_Procedure_Call_Statement (Loc,
-             Name => New_Reference_To (RTE (RE_Complete_Rendezvous), Loc));
+             Name => New_Occurrence_Of (RTE (RE_Complete_Rendezvous), Loc));
          Insert_Before (N, Call);
          --  why not insert actions here???
          Analyze (Call);
@@ -6953,11 +6955,11 @@ package body Exp_Ch6 is
          Call :=
            Make_Procedure_Call_Statement (Loc,
              Name =>
-               New_Reference_To (RTE (RE_Complete_Entry_Body), Loc),
+               New_Occurrence_Of (RTE (RE_Complete_Entry_Body), Loc),
              Parameter_Associations => New_List (
                Make_Attribute_Reference (Loc,
                  Prefix         =>
-                   New_Reference_To
+                   New_Occurrence_Of
                      (Find_Protection_Object (Current_Scope), Loc),
                  Attribute_Name => Name_Unchecked_Access)));
 
@@ -7043,7 +7045,7 @@ package body Exp_Ch6 is
                   Type_Definition   =>
                      Make_Access_To_Object_Definition (Loc,
                        Subtype_Indication =>
-                         New_Reference_To
+                         New_Occurrence_Of
                            (Corresponding_Record_Type (Scop), Loc))));
 
             Insert_Actions (N, Decls);
@@ -7432,7 +7434,7 @@ package body Exp_Ch6 is
                  Make_Allocator (Loc,
                    Expression =>
                      Make_Qualified_Expression (Loc,
-                       Subtype_Mark => New_Reference_To (Etype (Exp), Loc),
+                       Subtype_Mark => New_Occurrence_Of (Etype (Exp), Loc),
                        Expression   => Relocate_Node (Exp)));
 
                --  We do not want discriminant checks on the declaration,
@@ -7451,12 +7453,12 @@ package body Exp_Ch6 is
 
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => Temp,
-                   Object_Definition   => New_Reference_To (Acc_Typ, Loc),
+                   Object_Definition   => New_Occurrence_Of (Acc_Typ, Loc),
                    Expression          => Alloc_Node)));
 
                Rewrite (Exp,
                  Make_Explicit_Dereference (Loc,
-                 Prefix => New_Reference_To (Temp, Loc)));
+                 Prefix => New_Occurrence_Of (Temp, Loc)));
 
                --  Ada 2005 (AI-251): If the type of the returned object is
                --  an interface then add an implicit type conversion to force
@@ -7532,12 +7534,12 @@ package body Exp_Ch6 is
                Result_Id  : constant Entity_Id :=
                               Make_Temporary (Loc, 'R', ExpR);
                Result_Exp : constant Node_Id   :=
-                              New_Reference_To (Result_Id, Loc);
+                              New_Occurrence_Of (Result_Id, Loc);
                Result_Obj : constant Node_Id   :=
                               Make_Object_Declaration (Loc,
                                 Defining_Identifier => Result_Id,
                                 Object_Definition   =>
-                                  New_Reference_To (R_Type, Loc),
+                                  New_Occurrence_Of (R_Type, Loc),
                                 Constant_Present    => True,
                                 Expression          => ExpR);
 
@@ -7597,7 +7599,7 @@ package body Exp_Ch6 is
                      Unchecked_Convert_To (RTE (RE_Tag_Ptr),
                        Make_Function_Call (Loc,
                          Name                   =>
-                           New_Reference_To (RTE (RE_Base_Address), Loc),
+                           New_Occurrence_Of (RTE (RE_Base_Address), Loc),
                          Parameter_Associations => New_List (
                            Unchecked_Convert_To (RTE (RE_Address),
                              Duplicate_Subexpr (Prefix (Exp)))))));
@@ -8396,7 +8398,7 @@ package body Exp_Ch6 is
                   Append_Enabled_Item
                     (Item =>
                        Make_Predicate_Check
-                         (Typ, New_Reference_To (Formal, Loc)),
+                         (Typ, New_Occurrence_Of (Formal, Loc)),
                      List => Stmts);
                end if;
             end if;
@@ -8520,7 +8522,7 @@ package body Exp_Ch6 is
               Make_Parameter_Specification (Loc,
                 Defining_Identifier => Result,
                 Parameter_Type      =>
-                  New_Reference_To (Etype (Result), Loc)));
+                  New_Occurrence_Of (Etype (Result), Loc)));
          end if;
 
          --  Insert _Postconditions before the first source declaration of the
@@ -9268,24 +9270,24 @@ package body Exp_Ch6 is
 
                  Build_Set_Predefined_Prim_Op_Address (Loc,
                    Tag_Node     =>
-                     New_Reference_To (Node (Next_Elmt (Iface_DT_Ptr)), Loc),
+                     New_Occurrence_Of (Node (Next_Elmt (Iface_DT_Ptr)), Loc),
                    Position     => DT_Position (Prim),
                    Address_Node =>
                      Unchecked_Convert_To (RTE (RE_Prim_Ptr),
                        Make_Attribute_Reference (Loc,
-                         Prefix         => New_Reference_To (Thunk_Id, Loc),
+                         Prefix         => New_Occurrence_Of (Thunk_Id, Loc),
                          Attribute_Name => Name_Unrestricted_Access))),
 
                  Build_Set_Predefined_Prim_Op_Address (Loc,
                    Tag_Node     =>
-                     New_Reference_To
+                     New_Occurrence_Of
                       (Node (Next_Elmt (Next_Elmt (Next_Elmt (Iface_DT_Ptr)))),
                        Loc),
                    Position     => DT_Position (Prim),
                    Address_Node =>
                      Unchecked_Convert_To (RTE (RE_Prim_Ptr),
                        Make_Attribute_Reference (Loc,
-                         Prefix         => New_Reference_To (Prim, Loc),
+                         Prefix         => New_Occurrence_Of (Prim, Loc),
                          Attribute_Name => Name_Unrestricted_Access)))));
             end if;
 
@@ -9542,7 +9544,7 @@ package body Exp_Ch6 is
 
          New_Allocator :=
            Make_Allocator (Loc,
-             Expression => New_Reference_To (Result_Subt, Loc));
+             Expression => New_Occurrence_Of (Result_Subt, Loc));
          Set_No_Initialization (New_Allocator);
 
          --  Copy attributes to new allocator. Note that the new allocator
@@ -9567,7 +9569,7 @@ package body Exp_Ch6 is
          Insert_Action (Allocator,
            Make_Object_Declaration (Loc,
              Defining_Identifier => Return_Obj_Access,
-             Object_Definition   => New_Reference_To (Acc_Type, Loc),
+             Object_Definition   => New_Occurrence_Of (Acc_Type, Loc),
              Expression          => Relocate_Node (Allocator)));
 
          --  When the function has a controlling result, an allocation-form
@@ -9594,10 +9596,10 @@ package body Exp_Ch6 is
            (Func_Call,
             Function_Id,
             Make_Unchecked_Type_Conversion (Loc,
-              Subtype_Mark => New_Reference_To (Result_Subt, Loc),
+              Subtype_Mark => New_Occurrence_Of (Result_Subt, Loc),
               Expression   =>
                 Make_Explicit_Dereference (Loc,
-                  Prefix => New_Reference_To (Return_Obj_Access, Loc))));
+                  Prefix => New_Occurrence_Of (Return_Obj_Access, Loc))));
 
       --  When the result subtype is unconstrained, the function itself must
       --  perform the allocation of the return object, so we pass parameters
@@ -9620,7 +9622,7 @@ package body Exp_Ch6 is
                Pool_Actual =>
                  Make_Attribute_Reference (Loc,
                    Prefix         =>
-                     New_Reference_To
+                     New_Occurrence_Of
                        (Associated_Storage_Pool (Acc_Type), Loc),
                    Attribute_Name => Name_Unrestricted_Access));
 
@@ -9768,13 +9770,13 @@ package body Exp_Ch6 is
               Make_Object_Declaration (Loc,
                 Defining_Identifier => Temp_Id,
                 Object_Definition =>
-                  New_Reference_To (Result_Subt, Loc),
+                  New_Occurrence_Of (Result_Subt, Loc),
                 Expression =>
                   New_Copy_Tree (Function_Call));
 
             Insert_Action (Function_Call, Temp_Decl);
 
-            Rewrite (Function_Call, New_Reference_To (Temp_Id, Loc));
+            Rewrite (Function_Call, New_Occurrence_Of (Temp_Id, Loc));
             Analyze (Function_Call);
          end;
 
@@ -9792,7 +9794,7 @@ package body Exp_Ch6 is
            Make_Object_Declaration (Loc,
              Defining_Identifier => Return_Obj_Id,
              Aliased_Present     => True,
-             Object_Definition   => New_Reference_To (Result_Subt, Loc));
+             Object_Definition   => New_Occurrence_Of (Result_Subt, Loc));
 
          Set_No_Initialization (Return_Obj_Decl);
 
@@ -9817,7 +9819,7 @@ package body Exp_Ch6 is
          --  to the caller's return object.
 
          Add_Access_Actual_To_Build_In_Place_Call
-           (Func_Call, Function_Id, New_Reference_To (Return_Obj_Id, Loc));
+           (Func_Call, Function_Id, New_Occurrence_Of (Return_Obj_Id, Loc));
 
       --  When the result subtype is unconstrained, the function must allocate
       --  the return object in the secondary stack, so appropriate implicit
@@ -9923,7 +9925,7 @@ package body Exp_Ch6 is
         (Func_Call,
          Func_Id,
          Make_Unchecked_Type_Conversion (Loc,
-           Subtype_Mark => New_Reference_To (Result_Subt, Loc),
+           Subtype_Mark => New_Occurrence_Of (Result_Subt, Loc),
            Expression   => Relocate_Node (Lhs)));
 
       --  Create an access type designating the function's result subtype
@@ -9937,7 +9939,7 @@ package body Exp_Ch6 is
             Make_Access_To_Object_Definition (Loc,
               All_Present        => True,
               Subtype_Indication =>
-                New_Reference_To (Result_Subt, Loc)));
+                New_Occurrence_Of (Result_Subt, Loc)));
       Insert_After_And_Analyze (Assign, Ptr_Typ_Decl);
 
       --  Finally, create an access object initialized to a reference to the
@@ -9953,7 +9955,7 @@ package body Exp_Ch6 is
       Obj_Decl :=
         Make_Object_Declaration (Loc,
           Defining_Identifier => Obj_Id,
-          Object_Definition   => New_Reference_To (Ptr_Typ, Loc),
+          Object_Definition   => New_Occurrence_Of (Ptr_Typ, Loc),
           Expression          => New_Expr);
       Insert_After_And_Analyze (Ptr_Typ_Decl, Obj_Decl);
 
@@ -10065,7 +10067,7 @@ package body Exp_Ch6 is
               RTE_Available (RE_Root_Storage_Pool_Ptr)
             then
                Pool_Actual :=
-                 New_Reference_To (Build_In_Place_Formal
+                 New_Occurrence_Of (Build_In_Place_Formal
                    (Enclosing_Func, BIP_Storage_Pool), Loc);
 
             --  The build-in-place pool formal is not built on .NET/JVM
@@ -10078,7 +10080,7 @@ package body Exp_Ch6 is
               (Func_Call,
                Function_Id,
                Alloc_Form_Exp =>
-                 New_Reference_To
+                 New_Occurrence_Of
                    (Build_In_Place_Formal (Enclosing_Func, BIP_Alloc_Form),
                     Loc),
                Pool_Actual => Pool_Actual);
@@ -10093,7 +10095,7 @@ package body Exp_Ch6 is
 
          if Needs_BIP_Finalization_Master (Enclosing_Func) then
             Fmaster_Actual :=
-              New_Reference_To
+              New_Occurrence_Of
                 (Build_In_Place_Formal
                    (Enclosing_Func, BIP_Finalization_Master), Loc);
          end if;
@@ -10104,12 +10106,12 @@ package body Exp_Ch6 is
          Caller_Object :=
             Make_Unchecked_Type_Conversion (Loc,
               Subtype_Mark =>
-                New_Reference_To
+                New_Occurrence_Of
                   (Etype
                      (Build_In_Place_Formal (Function_Id, BIP_Object_Access)),
                    Loc),
               Expression   =>
-                New_Reference_To
+                New_Occurrence_Of
                   (Build_In_Place_Formal (Enclosing_Func, BIP_Object_Access),
                    Loc));
 
@@ -10121,8 +10123,8 @@ package body Exp_Ch6 is
       elsif Is_Constrained (Underlying_Type (Result_Subt)) then
          Caller_Object :=
             Make_Unchecked_Type_Conversion (Loc,
-              Subtype_Mark => New_Reference_To (Result_Subt, Loc),
-              Expression   => New_Reference_To (Obj_Def_Id, Loc));
+              Subtype_Mark => New_Occurrence_Of (Result_Subt, Loc),
+              Expression   => New_Occurrence_Of (Obj_Def_Id, Loc));
 
          --  When the function has a controlling result, an allocation-form
          --  parameter must be passed indicating that the caller is allocating
@@ -10164,7 +10166,7 @@ package body Exp_Ch6 is
          Add_Task_Actuals_To_Build_In_Place_Call
            (Func_Call, Function_Id,
             Master_Actual =>
-              New_Reference_To (Build_In_Place_Formal
+              New_Occurrence_Of (Build_In_Place_Formal
                 (Enclosing_Func, BIP_Task_Master), Loc));
 
       else
@@ -10189,7 +10191,7 @@ package body Exp_Ch6 is
             Make_Access_To_Object_Definition (Loc,
               All_Present        => True,
               Subtype_Indication =>
-                New_Reference_To (Etype (Function_Call), Loc)));
+                New_Occurrence_Of (Etype (Function_Call), Loc)));
 
       --  The access type and its accompanying object must be inserted after
       --  the object declaration in the constrained case, so that the function
@@ -10220,7 +10222,7 @@ package body Exp_Ch6 is
       Res_Decl :=
         Make_Object_Declaration (Loc,
           Defining_Identifier => Def_Id,
-          Object_Definition   => New_Reference_To (Ref_Type, Loc),
+          Object_Definition   => New_Occurrence_Of (Ref_Type, Loc),
           Expression          => New_Expr);
       Insert_After_And_Analyze (Ptr_Typ_Decl, Res_Decl);
 
@@ -10262,7 +10264,7 @@ package body Exp_Ch6 is
       else
          Call_Deref :=
            Make_Explicit_Dereference (Loc,
-             Prefix => New_Reference_To (Def_Id, Loc));
+             Prefix => New_Occurrence_Of (Def_Id, Loc));
 
          Loc := Sloc (Object_Decl);
          Rewrite (Object_Decl,
@@ -10360,7 +10362,7 @@ package body Exp_Ch6 is
 
       New_Allocator :=
         Make_Allocator (Loc,
-          Expression => New_Reference_To (Result_Subt, Loc));
+          Expression => New_Occurrence_Of (Result_Subt, Loc));
       Set_No_Initialization (New_Allocator);
 
       --  Copy attributes to new allocator. Note that the new allocator
@@ -10390,7 +10392,7 @@ package body Exp_Ch6 is
         Make_Object_Declaration (Loc,
           Defining_Identifier => Return_Obj_Access,
           Constant_Present    => True,
-          Object_Definition   => New_Reference_To (Acc_Type, Loc),
+          Object_Definition   => New_Occurrence_Of (Acc_Type, Loc),
           Expression          => Relocate_Node (Allocator));
       Insert_Action (Allocator, Tmp_Obj);
 
@@ -10398,7 +10400,7 @@ package body Exp_Ch6 is
         Build_Initialization_Call (Loc,
           Id_Ref =>
             Make_Explicit_Dereference (Loc,
-              Prefix => New_Reference_To (Return_Obj_Access, Loc)),
+              Prefix => New_Occurrence_Of (Return_Obj_Access, Loc)),
           Typ => Etype (Function_Id),
           Constructor_Ref => Function_Call));
 
@@ -10406,7 +10408,7 @@ package body Exp_Ch6 is
       --  the function call itself (which will effectively be an access to the
       --  object created by the allocator).
 
-      Rewrite (Allocator, New_Reference_To (Return_Obj_Access, Loc));
+      Rewrite (Allocator, New_Occurrence_Of (Return_Obj_Access, Loc));
 
       --  Ada 2005 (AI-251): If the type of the allocator is an interface then
       --  generate an implicit conversion to force displacement of the "this"
index 79b609d..41fe352 100644 (file)
@@ -557,10 +557,10 @@ package body Exp_Ch7 is
          Append_To (Stmts,
            Make_Procedure_Call_Statement (Loc,
              Name =>
-               New_Reference_To
+               New_Occurrence_Of
                  (RTE (RE_Expunge_Unactivated_Tasks), Loc),
              Parameter_Associations => New_List (
-               New_Reference_To (Activation_Chain_Entity (N), Loc))));
+               New_Occurrence_Of (Activation_Chain_Entity (N), Loc))));
 
       --  Attempt to cancel an asynchronous entry call whenever the block which
       --  contains the abortable part is exited.
@@ -586,17 +586,17 @@ package body Exp_Ch7 is
                    Condition =>
                      Make_Function_Call (Loc,
                        Name                   =>
-                         New_Reference_To (RTE (RE_Enqueued), Loc),
+                         New_Occurrence_Of (RTE (RE_Enqueued), Loc),
                        Parameter_Associations => New_List (
-                         New_Reference_To (Cancel_Param, Loc))),
+                         New_Occurrence_Of (Cancel_Param, Loc))),
 
                    Then_Statements => New_List (
                      Make_Procedure_Call_Statement (Loc,
                        Name =>
-                         New_Reference_To
+                         New_Occurrence_Of
                            (RTE (RE_Cancel_Protected_Entry_Call), Loc),
                          Parameter_Associations => New_List (
-                           New_Reference_To (Cancel_Param, Loc))))));
+                           New_Occurrence_Of (Cancel_Param, Loc))))));
 
             --  Asynchronous delay, generate:
             --    Cancel_Async_Delay (Cancel_Param);
@@ -605,11 +605,11 @@ package body Exp_Ch7 is
                Append_To (Stmts,
                  Make_Procedure_Call_Statement (Loc,
                    Name                   =>
-                     New_Reference_To (RTE (RE_Cancel_Async_Delay), Loc),
+                     New_Occurrence_Of (RTE (RE_Cancel_Async_Delay), Loc),
                    Parameter_Associations => New_List (
                      Make_Attribute_Reference (Loc,
                        Prefix         =>
-                         New_Reference_To (Cancel_Param, Loc),
+                         New_Occurrence_Of (Cancel_Param, Loc),
                        Attribute_Name => Name_Unchecked_Access))));
 
             --  Task entry call, generate:
@@ -619,9 +619,9 @@ package body Exp_Ch7 is
                Append_To (Stmts,
                  Make_Procedure_Call_Statement (Loc,
                    Name                   =>
-                     New_Reference_To (RTE (RE_Cancel_Task_Entry_Call), Loc),
+                     New_Occurrence_Of (RTE (RE_Cancel_Task_Entry_Call), Loc),
                    Parameter_Associations => New_List (
-                     New_Reference_To (Cancel_Param, Loc))));
+                     New_Occurrence_Of (Cancel_Param, Loc))));
             end if;
          end;
       end if;
@@ -672,7 +672,7 @@ package body Exp_Ch7 is
                 Name =>
                   Make_Explicit_Dereference (Data.Loc,
                     Prefix =>
-                      New_Reference_To
+                      New_Occurrence_Of
                         (RTE (RE_Get_Current_Excep), Data.Loc)));
 
          else
@@ -695,7 +695,7 @@ package body Exp_Ch7 is
 
             Actuals :=
               New_List (
-                New_Reference_To (Data.E_Id, Data.Loc),
+                New_Occurrence_Of (Data.E_Id, Data.Loc),
                 Make_Explicit_Dereference (Data.Loc, Except));
          end if;
 
@@ -715,16 +715,16 @@ package body Exp_Ch7 is
              Make_If_Statement (Data.Loc,
                Condition       =>
                  Make_Op_Not (Data.Loc,
-                   Right_Opnd => New_Reference_To (Data.Raised_Id, Data.Loc)),
+                   Right_Opnd => New_Occurrence_Of (Data.Raised_Id, Data.Loc)),
 
                Then_Statements => New_List (
                  Make_Assignment_Statement (Data.Loc,
-                   Name       => New_Reference_To (Data.Raised_Id, Data.Loc),
-                   Expression => New_Reference_To (Standard_True, Data.Loc)),
+                   Name       => New_Occurrence_Of (Data.Raised_Id, Data.Loc),
+                   Expression => New_Occurrence_Of (Standard_True, Data.Loc)),
 
                  Make_Procedure_Call_Statement (Data.Loc,
                    Name                   =>
-                     New_Reference_To (Proc_To_Call, Data.Loc),
+                     New_Occurrence_Of (Proc_To_Call, Data.Loc),
                    Parameter_Associations => Actuals))));
 
       else
@@ -734,8 +734,8 @@ package body Exp_Ch7 is
 
          Stmts := New_List (
            Make_Assignment_Statement (Data.Loc,
-             Name       => New_Reference_To (Data.Raised_Id, Data.Loc),
-             Expression => New_Reference_To (Standard_True, Data.Loc)));
+             Name       => New_Occurrence_Of (Data.Raised_Id, Data.Loc),
+             Expression => New_Occurrence_Of (Standard_True, Data.Loc)));
       end if;
 
       --  Generate:
@@ -907,7 +907,7 @@ package body Exp_Ch7 is
              Defining_Identifier => Fin_Mas_Id,
              Aliased_Present     => True,
              Object_Definition   =>
-               New_Reference_To (RTE (RE_Finalization_Master), Loc)));
+               New_Occurrence_Of (RTE (RE_Finalization_Master), Loc)));
 
          --  Storage pool selection and attribute decoration of the generated
          --  master. Since .NET/JVM compilers do not support pools, this step
@@ -934,11 +934,11 @@ package body Exp_Ch7 is
             Append_To (Actions,
               Make_Procedure_Call_Statement (Loc,
                 Name                   =>
-                  New_Reference_To (RTE (RE_Set_Base_Pool), Loc),
+                  New_Occurrence_Of (RTE (RE_Set_Base_Pool), Loc),
                 Parameter_Associations => New_List (
-                  New_Reference_To (Fin_Mas_Id, Loc),
+                  New_Occurrence_Of (Fin_Mas_Id, Loc),
                   Make_Attribute_Reference (Loc,
-                    Prefix         => New_Reference_To (Pool_Id, Loc),
+                    Prefix         => New_Occurrence_Of (Pool_Id, Loc),
                     Attribute_Name => Name_Unrestricted_Access))));
          end if;
 
@@ -1201,7 +1201,7 @@ package body Exp_Ch7 is
                 Defining_Identifier => Counter_Typ,
                 Subtype_Indication  =>
                   Make_Subtype_Indication (Loc,
-                    Subtype_Mark => New_Reference_To (Standard_Natural, Loc),
+                    Subtype_Mark => New_Occurrence_Of (Standard_Natural, Loc),
                     Constraint   =>
                       Make_Range_Constraint (Loc,
                         Range_Expression =>
@@ -1218,7 +1218,7 @@ package body Exp_Ch7 is
             Counter_Decl :=
               Make_Object_Declaration (Loc,
                 Defining_Identifier => Counter_Id,
-                Object_Definition   => New_Reference_To (Counter_Typ, Loc),
+                Object_Definition   => New_Occurrence_Of (Counter_Typ, Loc),
                 Expression          => Make_Integer_Literal (Loc, 0));
 
             --  Set the type of the counter explicitly to prevent errors when
@@ -1421,7 +1421,7 @@ package body Exp_Ch7 is
                 Discrete_Choices => New_List (Make_Others_Choice (Loc)),
                 Statements       => New_List (
                   Make_Goto_Statement (Loc,
-                    Name => New_Reference_To (Entity (Label_Id), Loc)))));
+                    Name => New_Occurrence_Of (Entity (Label_Id), Loc)))));
 
             --  Generate:
             --    <<L0>>
@@ -1472,9 +1472,9 @@ package body Exp_Ch7 is
             Append_To (Finalizer_Stmts,
               Make_Procedure_Call_Statement (Loc,
                 Name                   =>
-                  New_Reference_To (RTE (RE_SS_Release), Loc),
+                  New_Occurrence_Of (RTE (RE_SS_Release), Loc),
                 Parameter_Associations => New_List (
-                  New_Reference_To (Mark_Id, Loc))));
+                  New_Occurrence_Of (Mark_Id, Loc))));
          end if;
 
          --  Protect the statements with abort defer/undefer. This is only when
@@ -1487,11 +1487,11 @@ package body Exp_Ch7 is
          then
             Prepend_To (Finalizer_Stmts,
               Make_Procedure_Call_Statement (Loc,
-                Name => New_Reference_To (RTE (RE_Abort_Defer), Loc)));
+                Name => New_Occurrence_Of (RTE (RE_Abort_Defer), Loc)));
 
             Append_To (Finalizer_Stmts,
               Make_Procedure_Call_Statement (Loc,
-                Name => New_Reference_To (RTE (RE_Abort_Undefer), Loc)));
+                Name => New_Occurrence_Of (RTE (RE_Abort_Undefer), Loc)));
          end if;
 
          --  The local exception does not need to be reraised for library-level
@@ -2149,16 +2149,17 @@ package body Exp_Ch7 is
               Make_Object_Renaming_Declaration (Loc,
                 Defining_Identifier => Pool_Id,
                 Subtype_Mark        =>
-                  New_Reference_To (RTE (RE_Root_Storage_Pool), Loc),
+                  New_Occurrence_Of (RTE (RE_Root_Storage_Pool), Loc),
                 Name                =>
                   Make_Explicit_Dereference (Loc,
                     Prefix =>
                       Make_Function_Call (Loc,
                         Name                   =>
-                          New_Reference_To (RTE (RE_Base_Pool), Loc),
+                          New_Occurrence_Of (RTE (RE_Base_Pool), Loc),
                         Parameter_Associations => New_List (
                           Make_Explicit_Dereference (Loc,
-                            Prefix => New_Reference_To (Fin_Mas_Id, Loc)))))));
+                            Prefix =>
+                              New_Occurrence_Of (Fin_Mas_Id, Loc)))))));
 
             --  Create an access type which uses the storage pool of the
             --  caller's finalization master.
@@ -2173,7 +2174,7 @@ package body Exp_Ch7 is
                 Defining_Identifier => Ptr_Typ,
                 Type_Definition     =>
                   Make_Access_To_Object_Definition (Loc,
-                    Subtype_Indication => New_Reference_To (Obj_Typ, Loc))));
+                    Subtype_Indication => New_Occurrence_Of (Obj_Typ, Loc))));
 
             --  Perform minor decoration in order to set the master and the
             --  storage pool attributes.
@@ -2189,7 +2190,7 @@ package body Exp_Ch7 is
               Make_Free_Statement (Loc,
                 Expression =>
                   Unchecked_Convert_To (Ptr_Typ,
-                    New_Reference_To (Temp_Id, Loc)));
+                    New_Occurrence_Of (Temp_Id, Loc)));
 
             Set_Storage_Pool (Free_Stmt, Pool_Id);
 
@@ -2215,7 +2216,7 @@ package body Exp_Ch7 is
 
             Cond :=
               Make_Op_Ne (Loc,
-                Left_Opnd  => New_Reference_To (Fin_Mas_Id, Loc),
+                Left_Opnd  => New_Occurrence_Of (Fin_Mas_Id, Loc),
                 Right_Opnd => Make_Null (Loc));
 
             --  For constrained or tagged results escalate the condition to
@@ -2236,7 +2237,7 @@ package body Exp_Ch7 is
                     Make_And_Then (Loc,
                       Left_Opnd  =>
                         Make_Op_Gt (Loc,
-                          Left_Opnd  => New_Reference_To (Alloc, Loc),
+                          Left_Opnd  => New_Occurrence_Of (Alloc, Loc),
                           Right_Opnd =>
                             Make_Integer_Literal (Loc,
                               UI_From_Int
@@ -2431,7 +2432,7 @@ package body Exp_Ch7 is
       --  Start of processing for Process_Object_Declaration
 
       begin
-         Obj_Ref := New_Reference_To (Obj_Id, Loc);
+         Obj_Ref := New_Occurrence_Of (Obj_Id, Loc);
          Obj_Typ := Base_Type (Etype (Obj_Id));
 
          --  Handle access types
@@ -2450,7 +2451,7 @@ package body Exp_Ch7 is
 
          Inc_Decl :=
            Make_Assignment_Statement (Loc,
-             Name       => New_Reference_To (Counter_Id, Loc),
+             Name       => New_Occurrence_Of (Counter_Id, Loc),
              Expression => Make_Integer_Literal (Loc, Counter_Val));
 
          --  Insert the counter after all initialization has been done. The
@@ -2517,7 +2518,7 @@ package body Exp_Ch7 is
                Make_Integer_Literal (Loc, Counter_Val)),
              Statements       => New_List (
                Make_Goto_Statement (Loc,
-                 Name => New_Reference_To (Entity (Label_Id), Loc)))));
+                 Name => New_Occurrence_Of (Entity (Label_Id), Loc)))));
 
          --  Insert the jump destination, generate:
          --
@@ -2693,7 +2694,7 @@ package body Exp_Ch7 is
                     Make_If_Statement (Loc,
                       Condition       =>
                         Make_Op_Ne (Loc,
-                          Left_Opnd  => New_Reference_To (Obj_Id, Loc),
+                          Left_Opnd  => New_Occurrence_Of (Obj_Id, Loc),
                           Right_Opnd => Make_Null (Loc)),
                       Then_Statements => Fin_Stmts));
 
@@ -2711,7 +2712,7 @@ package body Exp_Ch7 is
                       Condition     =>
                         Make_Op_Not (Loc,
                           Right_Opnd =>
-                            New_Reference_To
+                            New_Occurrence_Of
                               (Status_Flag_Or_Transient_Decl (Obj_Id), Loc)),
 
                     Then_Statements => Fin_Stmts));
@@ -2743,9 +2744,9 @@ package body Exp_Ch7 is
          Append_To (Tagged_Type_Stmts,
            Make_Procedure_Call_Statement (Loc,
              Name                   =>
-               New_Reference_To (RTE (RE_Unregister_Tag), Loc),
+               New_Occurrence_Of (RTE (RE_Unregister_Tag), Loc),
              Parameter_Associations => New_List (
-               New_Reference_To (DT_Ptr, Loc))));
+               New_Occurrence_Of (DT_Ptr, Loc))));
       end Process_Tagged_Type_Declaration;
 
    --  Start of processing for Build_Finalizer
@@ -2971,7 +2972,7 @@ package body Exp_Ch7 is
          end;
       end if;
 
-      Set_At_End_Proc (HSS, New_Reference_To (Fin_Id, Loc));
+      Set_At_End_Proc (HSS, New_Occurrence_Of (Fin_Id, Loc));
 
       Analyze (At_End_Proc (HSS));
       Expand_At_End_Handler (HSS, Empty);
@@ -3043,7 +3044,7 @@ package body Exp_Ch7 is
       then
          Data.Abort_Id  := Make_Temporary (Loc, 'A');
 
-         A_Expr := New_Reference_To (RTE (RE_Triggered_By_Abort), Loc);
+         A_Expr := New_Occurrence_Of (RTE (RE_Triggered_By_Abort), Loc);
 
          --  Generate:
 
@@ -3053,7 +3054,7 @@ package body Exp_Ch7 is
            Make_Object_Declaration (Loc,
              Defining_Identifier => Data.Abort_Id,
              Constant_Present    => True,
-             Object_Definition   => New_Reference_To (Standard_Boolean, Loc),
+             Object_Definition   => New_Occurrence_Of (Standard_Boolean, Loc),
              Expression          => A_Expr));
 
       else
@@ -3073,7 +3074,7 @@ package body Exp_Ch7 is
            Make_Object_Declaration (Loc,
              Defining_Identifier => Data.E_Id,
              Object_Definition   =>
-               New_Reference_To (RTE (RE_Exception_Occurrence), Loc));
+               New_Occurrence_Of (RTE (RE_Exception_Occurrence), Loc));
          Set_No_Initialization (E_Decl);
 
          Append_To (Decls, E_Decl);
@@ -3089,8 +3090,8 @@ package body Exp_Ch7 is
       Append_To (Decls,
         Make_Object_Declaration (Loc,
           Defining_Identifier => Data.Raised_Id,
-          Object_Definition   => New_Reference_To (Standard_Boolean, Loc),
-          Expression          => New_Reference_To (Standard_False, Loc)));
+          Object_Definition   => New_Occurrence_Of (Standard_Boolean, Loc),
+          Expression          => New_Occurrence_Of (Standard_False, Loc)));
    end Build_Object_Declarations;
 
    ---------------------------
@@ -3113,10 +3114,10 @@ package body Exp_Ch7 is
          Stmt :=
            Make_Procedure_Call_Statement (Data.Loc,
               Name                   =>
-                New_Reference_To
+                New_Occurrence_Of
                   (RTE (RE_Raise_From_Controlled_Operation), Data.Loc),
               Parameter_Associations =>
-                New_List (New_Reference_To (Data.E_Id, Data.Loc)));
+                New_List (New_Occurrence_Of (Data.E_Id, Data.Loc)));
 
       --  Restricted run-time: exception messages are not supported and hence
       --  Raise_From_Controlled_Operation is not supported. Raise Program_Error
@@ -3134,14 +3135,14 @@ package body Exp_Ch7 is
       --      <or>
       --    Raised_Id
 
-      Expr := New_Reference_To (Data.Raised_Id, Data.Loc);
+      Expr := New_Occurrence_Of (Data.Raised_Id, Data.Loc);
 
       if Present (Data.Abort_Id) then
          Expr := Make_And_Then (Data.Loc,
            Left_Opnd  => Expr,
            Right_Opnd =>
              Make_Op_Not (Data.Loc,
-               Right_Opnd => New_Reference_To (Data.Abort_Id, Data.Loc)));
+               Right_Opnd => New_Occurrence_Of (Data.Abort_Id, Data.Loc)));
       end if;
 
       --  Generate:
@@ -3270,7 +3271,7 @@ package body Exp_Ch7 is
 
          else
             Index := Make_Temporary (Loc, 'J');
-            Append (New_Reference_To (Index, Loc), Index_List);
+            Append (New_Occurrence_Of (Index, Loc), Index_List);
 
             return New_List (
               Make_Implicit_Loop_Statement (N,
@@ -3389,7 +3390,7 @@ package body Exp_Ch7 is
          return
            Make_Procedure_Call_Statement (Loc,
              Name                   =>
-               New_Reference_To (RTE (RE_Finalize_Protection), Loc),
+               New_Occurrence_Of (RTE (RE_Finalize_Protection), Loc),
              Parameter_Associations => New_List (Concurrent_Ref (Ref)));
       end if;
    end Cleanup_Protected_Object;
@@ -3416,7 +3417,7 @@ package body Exp_Ch7 is
          return
            Make_Procedure_Call_Statement (Loc,
              Name                   =>
-               New_Reference_To (RTE (RE_Free_Task), Loc),
+               New_Occurrence_Of (RTE (RE_Free_Task), Loc),
              Parameter_Associations => New_List (Concurrent_Ref (Ref)));
       end if;
    end Cleanup_Task;
@@ -3778,10 +3779,10 @@ package body Exp_Ch7 is
               Make_Object_Declaration (Loc,
                 Defining_Identifier => Mark,
                 Object_Definition   =>
-                  New_Reference_To (RTE (RE_Mark_Id), Loc),
+                  New_Occurrence_Of (RTE (RE_Mark_Id), Loc),
                 Expression          =>
                   Make_Function_Call (Loc,
-                    Name => New_Reference_To (RTE (RE_SS_Mark), Loc))));
+                    Name => New_Occurrence_Of (RTE (RE_SS_Mark), Loc))));
 
             Set_Uses_Sec_Stack (Scop, False);
          end if;
@@ -4601,7 +4602,7 @@ package body Exp_Ch7 is
                           All_Present        =>
                             Ekind (Obj_Typ) = E_General_Access_Type,
                           Subtype_Indication =>
-                            New_Reference_To (Desig_Typ, Loc))));
+                            New_Occurrence_Of (Desig_Typ, Loc))));
 
                   --  Step 2: Create a temporary which acts as a hook to the
                   --  transient object. Generate:
@@ -4614,7 +4615,7 @@ package body Exp_Ch7 is
                     Make_Object_Declaration (Loc,
                       Defining_Identifier => Temp_Id,
                       Object_Definition   =>
-                        New_Reference_To (Ptr_Id, Loc)));
+                        New_Occurrence_Of (Ptr_Id, Loc)));
 
                   --  Mark the temporary as a transient hook. This signals the
                   --  machinery in Build_Finalizer to recognize this special
@@ -4626,11 +4627,11 @@ package body Exp_Ch7 is
 
                   if Is_Access_Type (Obj_Typ) then
                      Expr :=
-                       Convert_To (Ptr_Id, New_Reference_To (Obj_Id, Loc));
+                       Convert_To (Ptr_Id, New_Occurrence_Of (Obj_Id, Loc));
                   else
                      Expr :=
                        Make_Attribute_Reference (Loc,
-                         Prefix         => New_Reference_To (Obj_Id, Loc),
+                         Prefix         => New_Occurrence_Of (Obj_Id, Loc),
                          Attribute_Name => Name_Unrestricted_Access);
                   end if;
 
@@ -4657,7 +4658,7 @@ package body Exp_Ch7 is
 
                   Insert_After_And_Analyze (Temp_Ins,
                     Make_Assignment_Statement (Loc,
-                      Name       => New_Reference_To (Temp_Id, Loc),
+                      Name       => New_Occurrence_Of (Temp_Id, Loc),
                       Expression => Expr));
                end if;
 
@@ -4673,14 +4674,14 @@ package body Exp_Ch7 is
                if Must_Hook then
                   Append_To (Stmts,
                     Make_Assignment_Statement (Loc,
-                      Name       => New_Reference_To (Temp_Id, Loc),
+                      Name       => New_Occurrence_Of (Temp_Id, Loc),
                       Expression => Make_Null (Loc)));
                end if;
 
                --  Generate:
                --    [Deep_]Finalize (Obj_Ref);
 
-               Obj_Ref := New_Reference_To (Obj_Id, Loc);
+               Obj_Ref := New_Occurrence_Of (Obj_Id, Loc);
 
                if Is_Access_Type (Obj_Typ) then
                   Obj_Ref := Make_Explicit_Dereference (Loc, Obj_Ref);
@@ -4967,9 +4968,9 @@ package body Exp_Ch7 is
       return
         Make_Procedure_Call_Statement (Loc,
           Name                   =>
-            New_Reference_To (RTE (RE_Attach), Loc),
+            New_Occurrence_Of (RTE (RE_Attach), Loc),
           Parameter_Associations => New_List (
-            New_Reference_To (Finalization_Master (Ptr_Typ), Loc),
+            New_Occurrence_Of (Finalization_Master (Ptr_Typ), Loc),
             Unchecked_Convert_To (RTE (RE_Root_Controlled_Ptr), Obj_Ref)));
    end Make_Attach_Call;
 
@@ -4984,7 +4985,7 @@ package body Exp_Ch7 is
       return
         Make_Procedure_Call_Statement (Loc,
           Name                   =>
-            New_Reference_To (RTE (RE_Detach), Loc),
+            New_Occurrence_Of (RTE (RE_Detach), Loc),
           Parameter_Associations => New_List (
             Unchecked_Convert_To (RTE (RE_Root_Controlled_Ptr), Obj_Ref)));
    end Make_Detach_Call;
@@ -5007,12 +5008,12 @@ package body Exp_Ch7 is
       --  the corresponding flag a False value.
 
       if For_Parent then
-         Append_To (Params, New_Reference_To (Standard_False, Loc));
+         Append_To (Params, New_Occurrence_Of (Standard_False, Loc));
       end if;
 
       return
         Make_Procedure_Call_Statement (Loc,
-          Name                   => New_Reference_To (Proc_Id, Loc),
+          Name                   => New_Occurrence_Of (Proc_Id, Loc),
           Parameter_Associations => Params);
    end Make_Call;
 
@@ -5384,11 +5385,11 @@ package body Exp_Ch7 is
 
             return
               Make_Assignment_Statement (Loc,
-                Name       => New_Reference_To (Counter_Id, Loc),
+                Name       => New_Occurrence_Of (Counter_Id, Loc),
                 Expression =>
                   Make_Op_Subtract (Loc,
                     Left_Opnd  => Expr,
-                    Right_Opnd => New_Reference_To (Counter_Id, Loc)));
+                    Right_Opnd => New_Occurrence_Of (Counter_Id, Loc)));
          end Build_Counter_Assignment;
 
          -----------------------------
@@ -5495,15 +5496,15 @@ package body Exp_Ch7 is
            Make_If_Statement (Loc,
              Condition =>
                Make_Op_Gt (Loc,
-                 Left_Opnd  => New_Reference_To (Counter_Id, Loc),
+                 Left_Opnd  => New_Occurrence_Of (Counter_Id, Loc),
                  Right_Opnd => Make_Integer_Literal (Loc, 0)),
 
              Then_Statements => New_List (
                Make_Assignment_Statement (Loc,
-                 Name       => New_Reference_To (Counter_Id, Loc),
+                 Name       => New_Occurrence_Of (Counter_Id, Loc),
                  Expression =>
                    Make_Op_Subtract (Loc,
-                     Left_Opnd  => New_Reference_To (Counter_Id, Loc),
+                     Left_Opnd  => New_Occurrence_Of (Counter_Id, Loc),
                      Right_Opnd => Make_Integer_Literal (Loc, 1)))),
 
              Else_Statements => New_List (Fin_Stmt));
@@ -5611,10 +5612,10 @@ package body Exp_Ch7 is
 
          Append_To (Statements (Handled_Statement_Sequence (Init_Loop)),
            Make_Assignment_Statement (Loc,
-             Name       => New_Reference_To (Counter_Id, Loc),
+             Name       => New_Occurrence_Of (Counter_Id, Loc),
              Expression =>
                Make_Op_Add (Loc,
-                 Left_Opnd  => New_Reference_To (Counter_Id, Loc),
+                 Left_Opnd  => New_Occurrence_Of (Counter_Id, Loc),
                  Right_Opnd => Make_Integer_Literal (Loc, 1))));
 
          --  Generate all initialization loops starting from the innermost
@@ -5667,7 +5668,7 @@ package body Exp_Ch7 is
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => Counter_Id,
                    Object_Definition   =>
-                     New_Reference_To (Standard_Integer, Loc),
+                     New_Occurrence_Of (Standard_Integer, Loc),
                    Expression          => Make_Integer_Literal (Loc, 0))),
 
                Handled_Statement_Sequence =>
@@ -5689,7 +5690,7 @@ package body Exp_Ch7 is
       begin
          Id := First (L);
          while Present (Id) loop
-            Append_To (Refs, New_Reference_To (Id, Loc));
+            Append_To (Refs, New_Occurrence_Of (Id, Loc));
             Next (Id);
          end loop;
 
@@ -5733,7 +5734,8 @@ package body Exp_Ch7 is
          Formals := New_List (
            Make_Parameter_Specification (Loc,
              Defining_Identifier => Make_Defining_Identifier (Loc, Name_V),
-             Parameter_Type      => New_Reference_To (RTE (RE_Address), Loc)));
+             Parameter_Type      =>
+               New_Occurrence_Of (RTE (RE_Address), Loc)));
 
       --  Default case
 
@@ -5745,7 +5747,7 @@ package body Exp_Ch7 is
              Defining_Identifier => Make_Defining_Identifier (Loc, Name_V),
              In_Present          => True,
              Out_Present         => True,
-             Parameter_Type      => New_Reference_To (Typ, Loc)));
+             Parameter_Type      => New_Occurrence_Of (Typ, Loc)));
 
          --  F : Boolean := True
 
@@ -5756,9 +5758,9 @@ package body Exp_Ch7 is
               Make_Parameter_Specification (Loc,
                 Defining_Identifier => Make_Defining_Identifier (Loc, Name_F),
                 Parameter_Type      =>
-                  New_Reference_To (Standard_Boolean, Loc),
+                  New_Occurrence_Of (Standard_Boolean, Loc),
                 Expression          =>
-                  New_Reference_To (Standard_True, Loc)));
+                  New_Occurrence_Of (Standard_True, Loc)));
          end if;
       end if;
 
@@ -6296,7 +6298,7 @@ package body Exp_Ch7 is
                if Present (Proc) then
                   Adj_Stmt :=
                     Make_Procedure_Call_Statement (Loc,
-                      Name                   => New_Reference_To (Proc, Loc),
+                      Name                   => New_Occurrence_Of (Proc, Loc),
                       Parameter_Associations => New_List (
                         Make_Identifier (Loc, Name_V)));
 
@@ -6462,7 +6464,7 @@ package body Exp_Ch7 is
                          Statements => New_List (
                            Make_Goto_Statement (Loc,
                              Name =>
-                               New_Reference_To (Entity (Label_Id), Loc)))));
+                               New_Occurrence_Of (Entity (Label_Id), Loc)))));
 
                      --  Generate:
                      --    <<LN>>
@@ -6708,7 +6710,7 @@ package body Exp_Ch7 is
 
                    Statements => New_List (
                      Make_Goto_Statement (Loc,
-                       Name => New_Reference_To (Entity (Label_Id), Loc)))));
+                       Name => New_Occurrence_Of (Entity (Label_Id), Loc)))));
 
                Append_To (Stmts, Label);  --  statement
 
@@ -6876,7 +6878,7 @@ package body Exp_Ch7 is
                if Present (Proc) then
                   Fin_Stmt :=
                     Make_Procedure_Call_Statement (Loc,
-                      Name                   => New_Reference_To (Proc, Loc),
+                      Name                   => New_Occurrence_Of (Proc, Loc),
                       Parameter_Associations => New_List (
                         Make_Identifier (Loc, Name_V)));
 
@@ -7022,7 +7024,7 @@ package body Exp_Ch7 is
                   return New_List (
                     Make_Procedure_Call_Statement (Loc,
                       Name                   =>
-                        New_Reference_To
+                        New_Occurrence_Of
                           (Find_Prim_Op (Typ, Name_Of (Prim)), Loc),
                       Parameter_Associations => New_List (
                         Make_Identifier (Loc, Name_V))));
@@ -7277,7 +7279,7 @@ package body Exp_Ch7 is
                   Defining_Identifier =>
                     Make_Defining_Identifier (Loc, Name_V),
                   Parameter_Type =>
-                    New_Reference_To (RTE (RE_Address), Loc)))),
+                    New_Occurrence_Of (RTE (RE_Address), Loc)))),
 
           Declarations => No_List,
 
@@ -7355,10 +7357,10 @@ package body Exp_Ch7 is
           Type_Definition     =>
             Make_Access_To_Object_Definition (Loc,
               All_Present        => True,
-              Subtype_Indication => New_Reference_To (Desg_Typ, Loc))),
+              Subtype_Indication => New_Occurrence_Of (Desg_Typ, Loc))),
 
         Make_Attribute_Definition_Clause (Loc,
-          Name       => New_Reference_To (Ptr_Typ, Loc),
+          Name       => New_Occurrence_Of (Ptr_Typ, Loc),
           Chars      => Name_Storage_Size,
           Expression => Make_Integer_Literal (Loc, 0)));
 
@@ -7381,7 +7383,7 @@ package body Exp_Ch7 is
 
             Append_To (Decls,
               Make_Attribute_Definition_Clause (Loc,
-                Name       => New_Reference_To (Ptr_Typ, Loc),
+                Name       => New_Occurrence_Of (Ptr_Typ, Loc),
                 Chars      => Name_Size,
                 Expression =>
                   Make_Integer_Literal (Loc, System_Address_Size)));
@@ -7397,12 +7399,12 @@ package body Exp_Ch7 is
                 Defining_Identifier => Dope_Id,
                 Constant_Present    => True,
                 Object_Definition   =>
-                  New_Reference_To (RTE (RE_Storage_Offset), Loc),
+                  New_Occurrence_Of (RTE (RE_Storage_Offset), Loc),
                 Expression          =>
                   Make_Op_Divide (Loc,
                     Left_Opnd  =>
                       Make_Attribute_Reference (Loc,
-                        Prefix         => New_Reference_To (Desg_Typ, Loc),
+                        Prefix         => New_Occurrence_Of (Desg_Typ, Loc),
                         Attribute_Name => Name_Descriptor_Size),
                     Right_Opnd =>
                       Make_Integer_Literal (Loc, System_Storage_Unit))));
@@ -7418,10 +7420,10 @@ package body Exp_Ch7 is
             Obj_Expr :=
               Make_Function_Call (Loc,
                 Name                   =>
-                  New_Reference_To (RTE (RE_Add_Offset_To_Address), Loc),
+                  New_Occurrence_Of (RTE (RE_Add_Offset_To_Address), Loc),
                 Parameter_Associations => New_List (
                   Obj_Expr,
-                  New_Reference_To (Dope_Id, Loc)));
+                  New_Occurrence_Of (Dope_Id, Loc)));
          end;
       end if;
 
@@ -7477,10 +7479,10 @@ package body Exp_Ch7 is
          Raise_Node :=
            Make_Procedure_Call_Statement (Loc,
              Name                   =>
-               New_Reference_To
+               New_Occurrence_Of
                  (RTE (RE_Raise_From_Controlled_Operation), Loc),
              Parameter_Associations => New_List (
-               New_Reference_To (E_Occ, Loc)));
+               New_Occurrence_Of (E_Occ, Loc)));
 
       --  Restricted run-time: exception messages are not supported
 
@@ -7582,7 +7584,7 @@ package body Exp_Ch7 is
       return
         Make_Procedure_Call_Statement (Loc,
           Name =>
-            New_Reference_To (Proc, Loc),
+            New_Occurrence_Of (Proc, Loc),
           Parameter_Associations => New_List (Ref));
    end Make_Init_Call;
 
@@ -7606,14 +7608,14 @@ package body Exp_Ch7 is
           Defining_Identifier => Make_Defining_Identifier (Loc, Name_V),
           In_Present          => True,
           Out_Present         => True,
-          Parameter_Type      => New_Reference_To (Typ, Loc)),
+          Parameter_Type      => New_Occurrence_Of (Typ, Loc)),
 
          --  F : Boolean := True
 
         Make_Parameter_Specification (Loc,
           Defining_Identifier => Make_Defining_Identifier (Loc, Name_F),
-          Parameter_Type      => New_Reference_To (Standard_Boolean, Loc),
-          Expression          => New_Reference_To (Standard_True, Loc)));
+          Parameter_Type      => New_Occurrence_Of (Standard_Boolean, Loc),
+          Expression          => New_Occurrence_Of (Standard_True, Loc)));
 
       --  Add the necessary number of counters to represent the initialization
       --  state of an object.
@@ -7711,12 +7713,12 @@ package body Exp_Ch7 is
       return
         Make_Procedure_Call_Statement (Loc,
           Name                   =>
-            New_Reference_To (RTE (RE_Set_Finalize_Address), Loc),
+            New_Occurrence_Of (RTE (RE_Set_Finalize_Address), Loc),
           Parameter_Associations => New_List (
             Fin_Mas_Ref,
             Make_Attribute_Reference (Loc,
               Prefix         =>
-                New_Reference_To (TSS (Utyp, TSS_Finalize_Address), Loc),
+                New_Occurrence_Of (TSS (Utyp, TSS_Finalize_Address), Loc),
               Attribute_Name => Name_Unrestricted_Access)));
    end Make_Set_Finalize_Address_Call;
 
@@ -7796,7 +7798,7 @@ package body Exp_Ch7 is
 
       Block :=
         Make_Block_Statement (Loc,
-          Identifier                 => New_Reference_To (Current_Scope, Loc),
+          Identifier                 => New_Occurrence_Of (Current_Scope, Loc),
           Declarations               => Decls,
           Handled_Statement_Sequence =>
             Make_Handled_Sequence_Of_Statements (Loc, Statements => Instrs),
@@ -8002,16 +8004,16 @@ package body Exp_Ch7 is
       Insert_Actions (N, New_List (
         Make_Object_Declaration (Loc,
           Defining_Identifier => Temp,
-          Object_Definition   => New_Reference_To (Typ, Loc)),
+          Object_Definition   => New_Occurrence_Of (Typ, Loc)),
 
         Make_Transient_Block (Loc,
           Action =>
             Make_Assignment_Statement (Loc,
-              Name       => New_Reference_To (Temp, Loc),
+              Name       => New_Occurrence_Of (Temp, Loc),
               Expression => Expr),
           Par    => Parent (N))));
 
-      Rewrite (N, New_Reference_To (Temp, Loc));
+      Rewrite (N, New_Occurrence_Of (Temp, Loc));
       Analyze_And_Resolve (N, Typ);
    end Wrap_Transient_Expression;
 
index 88e1ea7..e1b0267 100644 (file)
@@ -582,7 +582,7 @@ package body Exp_Ch9 is
                Actual_Family_Offset (
                  Make_Attribute_Reference (Sloc,
                    Attribute_Name => Name_Pos,
-                   Prefix => New_Reference_To (Base_Type (S), Sloc),
+                   Prefix => New_Occurrence_Of (Base_Type (S), Sloc),
                    Expressions => New_List (Relocate_Node (Index))),
                  Type_Low_Bound (S)));
       else
@@ -728,7 +728,7 @@ package body Exp_Ch9 is
              Prefix        =>
                Unchecked_Convert_To (Entry_Parameters_Type (Ent),
                  Make_Identifier (Loc, Chars (Ptr))),
-             Selector_Name => New_Reference_To (Comp, Loc));
+             Selector_Name => New_Occurrence_Of (Comp, Loc));
 
          Decl :=
            Build_Renamed_Formal_Declaration
@@ -772,7 +772,7 @@ package body Exp_Ch9 is
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uObject),
           Object_Definition =>
-            New_Reference_To (Obj_Ptr, Loc),
+            New_Occurrence_Of (Obj_Ptr, Loc),
           Expression =>
             Unchecked_Convert_To (Obj_Ptr, Make_Identifier (Loc, Name_uO)));
       Set_Debug_Info_Needed (Defining_Identifier (Decl));
@@ -788,7 +788,7 @@ package body Exp_Ch9 is
           Type_Definition =>
             Make_Access_To_Object_Definition (Loc,
               Subtype_Indication =>
-                New_Reference_To (Rec_Typ, Loc)));
+                New_Occurrence_Of (Rec_Typ, Loc)));
       Set_Debug_Info_Needed (Defining_Identifier (Decl));
       Prepend_To (Decls, Decl);
    end Add_Object_Pointer;
@@ -863,11 +863,11 @@ package body Exp_Ch9 is
 
             Statements =>  New_List (
               Make_Procedure_Call_Statement (Sloc (Stats),
-                Name => New_Reference_To (
+                Name => New_Occurrence_Of (
                   RTE (RE_Exceptional_Complete_Rendezvous), Sloc (Stats)),
                 Parameter_Associations => New_List (
                   Make_Function_Call (Sloc (Stats),
-                    Name => New_Reference_To (
+                    Name => New_Occurrence_Of (
                       RTE (RE_Get_GNAT_Exception), Sloc (Stats)))))))));
 
       Set_Parent (New_S, Astat); -- temp parent for Analyze call
@@ -970,7 +970,7 @@ package body Exp_Ch9 is
                 Defining_Identifier => Chain,
                 Aliased_Present     => True,
                 Object_Definition   =>
-                  New_Reference_To (RTE (RE_Activation_Chain), Loc));
+                  New_Occurrence_Of (RTE (RE_Activation_Chain), Loc));
 
             Prepend_To (Decls, Decl);
 
@@ -1074,16 +1074,16 @@ package body Exp_Ch9 is
             Defining_Identifier =>
               Make_Defining_Identifier (Loc, Name_uO),
             Parameter_Type =>
-              New_Reference_To (RTE (RE_Address), Loc)),
+              New_Occurrence_Of (RTE (RE_Address), Loc)),
 
           Make_Parameter_Specification (Loc,
             Defining_Identifier =>
               Make_Defining_Identifier (Loc, Name_uE),
             Parameter_Type =>
-              New_Reference_To (RTE (RE_Protected_Entry_Index), Loc))),
+              New_Occurrence_Of (RTE (RE_Protected_Entry_Index), Loc))),
 
         Result_Definition =>
-          New_Reference_To (Standard_Boolean, Loc));
+          New_Occurrence_Of (Standard_Boolean, Loc));
    end Build_Barrier_Function_Specification;
 
    --------------------------
@@ -1098,7 +1098,7 @@ package body Exp_Ch9 is
    begin
       return
         Make_Function_Call (Loc,
-          Name => New_Reference_To (E, Loc),
+          Name => New_Occurrence_Of (E, Loc),
           Parameter_Associations => New_List (Concurrent_Ref (N)));
    end Build_Call_With_Task;
 
@@ -1168,10 +1168,10 @@ package body Exp_Ch9 is
                   Make_Defining_Identifier (Loc, Name_uMaster),
                 Constant_Present    => True,
                 Object_Definition   =>
-                  New_Reference_To (Standard_Integer, Loc),
+                  New_Occurrence_Of (Standard_Integer, Loc),
                 Expression          =>
                   Make_Explicit_Dereference (Loc,
-                    New_Reference_To (RTE (RE_Current_Master), Loc)));
+                    New_Occurrence_Of (RTE (RE_Current_Master), Loc)));
 
             Insert_Action (Related_Node, Master_Decl);
             Analyze (Master_Decl);
@@ -1215,7 +1215,7 @@ package body Exp_Ch9 is
       Ren_Decl :=
         Make_Object_Renaming_Declaration (Loc,
           Defining_Identifier => Master_Id,
-          Subtype_Mark        => New_Reference_To (Standard_Integer, Loc),
+          Subtype_Mark        => New_Occurrence_Of (Standard_Integer, Loc),
           Name                => Name_Id);
 
       Insert_Action (Related_Node, Ren_Decl);
@@ -1317,15 +1317,21 @@ package body Exp_Ch9 is
       N : Node_Id) return Node_Id
    is
       Loc : constant Source_Ptr := Sloc (N);
+
    begin
       return
          Make_Op_Or (Loc,
            Make_Op_Eq (Loc,
-             Left_Opnd  => New_Reference_To (K, Loc),
-             Right_Opnd => New_Reference_To (RTE (RE_TK_Limited_Tagged), Loc)),
+             Left_Opnd  =>
+               New_Occurrence_Of (K, Loc),
+             Right_Opnd =>
+               New_Occurrence_Of (RTE (RE_TK_Limited_Tagged), Loc)),
+
            Make_Op_Eq (Loc,
-             Left_Opnd  => New_Reference_To (K, Loc),
-             Right_Opnd => New_Reference_To (RTE (RE_TK_Tagged), Loc)));
+             Left_Opnd  =>
+               New_Occurrence_Of (K, Loc),
+             Right_Opnd =>
+               New_Occurrence_Of (RTE (RE_TK_Tagged), Loc)));
    end Build_Dispatching_Tag_Check;
 
    ----------------------------------
@@ -1513,7 +1519,7 @@ package body Exp_Ch9 is
                     Make_Object_Declaration (Loc,
                       Defining_Identifier => Index,
                       Object_Definition   =>
-                        New_Reference_To (RTE (RE_Entry_Index), Loc),
+                        New_Occurrence_Of (RTE (RE_Entry_Index), Loc),
                       Expression          => Make_Integer_Literal (Loc, 1)));
 
                   --  Step 2: Generate the declaration of an array to house all
@@ -1529,11 +1535,11 @@ package body Exp_Ch9 is
                       Defining_Identifier => Size,
                       Constant_Present    => True,
                       Object_Definition   =>
-                        New_Reference_To (RTE (RE_Entry_Index), Loc),
+                        New_Occurrence_Of (RTE (RE_Entry_Index), Loc),
                       Expression          =>
                         Make_Function_Call (Loc,
                           Name                   =>
-                            New_Reference_To (RTE (Count), Loc),
+                            New_Occurrence_Of (RTE (Count), Loc),
                           Parameter_Associations =>
                             New_List (Object_Reference))));
 
@@ -1544,15 +1550,17 @@ package body Exp_Ch9 is
                       Defining_Identifier => Data,
                       Aliased_Present     => True,
                       Object_Definition   =>
-                        New_Reference_To (RTE (Data_Typ), Loc),
+                        New_Occurrence_Of (RTE (Data_Typ), Loc),
                       Expression          =>
                         Make_Aggregate (Loc,
                           Component_Associations => New_List (
                             Make_Component_Association (Loc,
                               Choices    => New_List (
                                 Make_Range (Loc,
-                                  Low_Bound  => Make_Integer_Literal (Loc, 1),
-                                  High_Bound => New_Reference_To (Size, Loc))),
+                                  Low_Bound  =>
+                                    Make_Integer_Literal (Loc, 1),
+                                  High_Bound =>
+                                    New_Occurrence_Of (Size, Loc))),
                               Expression => Make_Null (Loc))))));
                end;
             end if;
@@ -1566,10 +1574,10 @@ package body Exp_Ch9 is
          begin
             return
               Make_Assignment_Statement (Loc,
-                Name       => New_Reference_To (Index, Loc),
+                Name       => New_Occurrence_Of (Index, Loc),
                 Expression =>
                   Make_Op_Add (Loc,
-                    Left_Opnd  => New_Reference_To (Index, Loc),
+                    Left_Opnd  => New_Occurrence_Of (Index, Loc),
                     Right_Opnd => Make_Integer_Literal (Loc, 1)));
          end Increment_Index;
 
@@ -1584,7 +1592,8 @@ package body Exp_Ch9 is
                 Defining_Identifier => Def_Id,
                 Aliased_Present     => True,
                 Constant_Present    => True,
-                Object_Definition   => New_Reference_To (Standard_String, Loc),
+                Object_Definition   =>
+                  New_Occurrence_Of (Standard_String, Loc),
                 Expression          =>
                   Make_String_Literal (Loc, String_From_Name_Buffer));
          end Name_Declaration;
@@ -1599,12 +1608,12 @@ package body Exp_Ch9 is
               Make_Assignment_Statement (Loc,
                 Name       =>
                   Make_Indexed_Component (Loc,
-                    Prefix      => New_Reference_To (Data, Loc),
-                    Expressions => New_List (New_Reference_To (Index, Loc))),
+                    Prefix      => New_Occurrence_Of (Data, Loc),
+                    Expressions => New_List (New_Occurrence_Of (Index, Loc))),
 
                 Expression =>
                   Make_Attribute_Reference (Loc,
-                    Prefix         => New_Reference_To (Def_Id, Loc),
+                    Prefix         => New_Occurrence_Of (Def_Id, Loc),
                     Attribute_Name => Name_Unchecked_Access));
          end Set_Entry_Name;
 
@@ -1766,11 +1775,11 @@ package body Exp_Ch9 is
 
          Append_To (Stmts,
            Make_Procedure_Call_Statement (Loc,
-             Name                   => New_Reference_To (RTE (Proc), Loc),
+             Name                   => New_Occurrence_Of (RTE (Proc), Loc),
              Parameter_Associations => New_List (
                Object_Reference,
                Make_Attribute_Reference (Loc,
-                 Prefix         => New_Reference_To (Data, Loc),
+                 Prefix         => New_Occurrence_Of (Data, Loc),
                  Attribute_Name => Name_Unchecked_Access))));
       end if;
    end Build_Entry_Names;
@@ -1813,7 +1822,7 @@ package body Exp_Ch9 is
                     All_Present        => True,
                     Constant_Present   => Ekind (Formal) = E_In_Parameter,
                     Subtype_Indication =>
-                      New_Reference_To (Etype (Actual), Loc))));
+                      New_Occurrence_Of (Etype (Actual), Loc))));
 
             --  Generate:
             --    Param : Ann;
@@ -1827,7 +1836,7 @@ package body Exp_Ch9 is
                     Aliased_Present =>
                       False,
                     Subtype_Indication =>
-                      New_Reference_To (Comp_Nam, Loc))));
+                      New_Occurrence_Of (Comp_Nam, Loc))));
 
             Has_Comp := True;
          end if;
@@ -1900,14 +1909,14 @@ package body Exp_Ch9 is
          Decl :=
            Make_Object_Renaming_Declaration (Loc,
              Defining_Identifier => New_F,
-             Subtype_Mark        => New_Reference_To (Etype (Comp), Loc),
+             Subtype_Mark        => New_Occurrence_Of (Etype (Comp), Loc),
              Name                => Renamed_Formal);
 
       else
          Decl :=
            Make_Object_Renaming_Declaration (Loc,
              Defining_Identifier => New_F,
-             Subtype_Mark        => New_Reference_To (Etype (Formal), Loc),
+             Subtype_Mark        => New_Occurrence_Of (Etype (Formal), Loc),
              Name                =>
                Make_Explicit_Dereference (Loc, Renamed_Formal));
       end if;
@@ -2055,10 +2064,10 @@ package body Exp_Ch9 is
                  Make_Object_Renaming_Declaration (Loc,
                    Defining_Identifier =>
                      Make_Defining_Identifier (Loc, Chars (D)),
-                   Subtype_Mark        => New_Reference_To (Etype (D), Loc),
+                   Subtype_Mark        => New_Occurrence_Of (Etype (D), Loc),
                    Name                =>
                      Make_Selected_Component (Loc,
-                       Prefix        => New_Reference_To (Synch_Id, Loc),
+                       Prefix        => New_Occurrence_Of (Synch_Id, Loc),
                        Selector_Name => Make_Identifier (Loc, Chars (D))));
                Prepend (Decl, Decls);
                Next_Discriminant (D);
@@ -2176,7 +2185,7 @@ package body Exp_Ch9 is
                       Chars => Chars (Defining_Identifier (First_Form))));
                end if;
 
-               Nam := New_Reference_To (Subp_Id, Loc);
+               Nam := New_Occurrence_Of (Subp_Id, Loc);
             else
                --  An access-to-variable object parameter requires an explicit
                --  dereference in the unchecked conversion. This case occurs
@@ -2200,7 +2209,7 @@ package body Exp_Ch9 is
                    Prefix        =>
                      Unchecked_Convert_To
                        (Corresponding_Concurrent_Type (Obj_Typ), Conv_Id),
-                   Selector_Name => New_Reference_To (Subp_Id, Loc));
+                   Selector_Name => New_Occurrence_Of (Subp_Id, Loc));
             end if;
 
             --  Create the subprogram body. For a function, the call to the
@@ -2487,7 +2496,7 @@ package body Exp_Ch9 is
                Param_Type := Copy_Separate_Tree (Parameter_Type (Formal));
             else
                Param_Type :=
-                 New_Reference_To (Etype (Parameter_Type (Formal)), Loc);
+                 New_Occurrence_Of (Etype (Parameter_Type (Formal)), Loc);
             end if;
 
             Append_To (New_Formals,
@@ -2578,7 +2587,7 @@ package body Exp_Ch9 is
                 Defining_Identifier => Make_Defining_Identifier (Loc, Name_uO),
                 In_Present          => True,
                 Out_Present         => False,
-                Parameter_Type      => New_Reference_To (Obj_Typ, Loc));
+                Parameter_Type      => New_Occurrence_Of (Obj_Typ, Loc));
 
          --  For entries and procedures of protected types the mode of
          --  the controlling argument must be in-out.
@@ -2591,7 +2600,7 @@ package body Exp_Ch9 is
                     Chars => Name_uO),
                 In_Present     => True,
                 Out_Present    => (Ekind (Subp_Id) /= E_Function),
-                Parameter_Type => New_Reference_To (Obj_Typ, Loc));
+                Parameter_Type => New_Occurrence_Of (Obj_Typ, Loc));
          end if;
       end if;
 
@@ -2640,12 +2649,12 @@ package body Exp_Ch9 is
                Obj_Param_Typ :=
                  Make_Access_Definition (Loc,
                    Subtype_Mark =>
-                     New_Reference_To (Obj_Typ, Loc));
+                     New_Occurrence_Of (Obj_Typ, Loc));
                Set_Null_Exclusion_Present (Obj_Param_Typ,
                  Null_Exclusion_Present (Parameter_Type (First_Param)));
 
             else
-               Obj_Param_Typ := New_Reference_To (Obj_Typ, Loc);
+               Obj_Param_Typ := New_Occurrence_Of (Obj_Typ, Loc);
             end if;
 
             Obj_Param :=
@@ -2672,7 +2681,7 @@ package body Exp_Ch9 is
                   Make_Defining_Identifier (Loc, Name_uO),
                 In_Present  => In_Present (Parent (First_Entity (Subp_Id))),
                 Out_Present => Ekind (Subp_Id) /= E_Function,
-                  Parameter_Type => New_Reference_To (Obj_Typ, Loc));
+                  Parameter_Type => New_Occurrence_Of (Obj_Typ, Loc));
             Prepend_To (New_Formals, Obj_Param);
          end if;
 
@@ -2995,12 +3004,12 @@ package body Exp_Ch9 is
             Make_Parameter_Specification (Loc,
               Defining_Identifier => Parm1,
               Parameter_Type      =>
-                New_Reference_To (RTE (RE_Address), Loc)),
+                New_Occurrence_Of (RTE (RE_Address), Loc)),
 
             Make_Parameter_Specification (Loc,
               Defining_Identifier => Parm2,
               Parameter_Type      =>
-                New_Reference_To (RTE (RE_Protected_Entry_Index), Loc))),
+                New_Occurrence_Of (RTE (RE_Protected_Entry_Index), Loc))),
 
           Result_Definition        => New_Occurrence_Of (
             RTE (RE_Protected_Entry_Index), Loc));
@@ -3305,24 +3314,24 @@ package body Exp_Ch9 is
                       Condition       =>
                         Make_Function_Call (Loc,
                           Name                   =>
-                            New_Reference_To (Try_Write, Loc),
+                            New_Occurrence_Of (Try_Write, Loc),
                           Parameter_Associations => New_List (
                             Make_Attribute_Reference (Loc,
                               Prefix         => Relocate_Node (Comp_Sel_Nam),
                               Attribute_Name => Name_Address),
 
                             Unchecked_Convert_To (Unsigned,
-                              New_Reference_To (Expected_Comp, Loc)),
+                              New_Occurrence_Of (Expected_Comp, Loc)),
 
                             Unchecked_Convert_To (Unsigned,
-                              New_Reference_To (Desired_Comp, Loc)))),
+                              New_Occurrence_Of (Desired_Comp, Loc)))),
 
                       Then_Statements => New_List (Relocate_Node (Stmt)),
 
                       Else_Statements => New_List (
                         Make_Goto_Statement (Loc,
                           Name =>
-                            New_Reference_To (Entity (Label_Id), Loc)))));
+                            New_Occurrence_Of (Entity (Label_Id), Loc)))));
                end Wrap_Statement;
 
             --  Start of processing for Process_Node
@@ -3431,12 +3440,12 @@ package body Exp_Ch9 is
             Decl :=
               Make_Object_Declaration (Loc,
                 Defining_Identifier => Expected_Comp,
-                Object_Definition   => New_Reference_To (Comp_Type, Loc),
+                Object_Definition   => New_Occurrence_Of (Comp_Type, Loc),
                 Constant_Present    => True,
                 Expression          =>
                   Unchecked_Convert_To (Comp_Type,
                     Make_Function_Call (Loc,
-                      Name                   => New_Reference_To (Read, Loc),
+                      Name                   => New_Occurrence_Of (Read, Loc),
                       Parameter_Associations => New_List (
                         Make_Attribute_Reference (Loc,
                           Prefix         => Relocate_Node (Comp_Sel_Nam),
@@ -3468,9 +3477,9 @@ package body Exp_Ch9 is
                Insert_Before (Comp_Decl,
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => Desired_Comp,
-                   Object_Definition   => New_Reference_To (Comp_Type, Loc),
+                   Object_Definition   => New_Occurrence_Of (Comp_Type, Loc),
                    Expression          =>
-                     New_Reference_To (Expected_Comp, Loc)));
+                     New_Occurrence_Of (Expected_Comp, Loc)));
 
             --  Protected function
 
@@ -3497,7 +3506,7 @@ package body Exp_Ch9 is
                 Subtype_Mark        =>
                   New_Occurrence_Of (Comp_Type, Loc),
                 Name                =>
-                  New_Reference_To (Desired_Comp, Loc)));
+                  New_Occurrence_Of (Desired_Comp, Loc)));
 
             --  Wrap any return or raise statements in Stmts in same the manner
             --  described in Process_Stmts.
@@ -3516,17 +3525,17 @@ package body Exp_Ch9 is
                    Condition =>
                      Make_Function_Call (Loc,
                        Name                   =>
-                         New_Reference_To (Try_Write, Loc),
+                         New_Occurrence_Of (Try_Write, Loc),
                        Parameter_Associations => New_List (
                          Make_Attribute_Reference (Loc,
                            Prefix         => Relocate_Node (Comp_Sel_Nam),
                            Attribute_Name => Name_Address),
 
                          Unchecked_Convert_To (Unsigned,
-                           New_Reference_To (Expected_Comp, Loc)),
+                           New_Occurrence_Of (Expected_Comp, Loc)),
 
                          Unchecked_Convert_To (Unsigned,
-                           New_Reference_To (Desired_Comp, Loc)))));
+                           New_Occurrence_Of (Desired_Comp, Loc)))));
 
                --  Small optimization: transform the default return statement
                --  of a procedure into the atomic exit statement.
@@ -3641,10 +3650,10 @@ package body Exp_Ch9 is
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uMaster),
           Constant_Present    => True,
-          Object_Definition   => New_Reference_To (RTE (RE_Master_Id), Loc),
+          Object_Definition   => New_Occurrence_Of (RTE (RE_Master_Id), Loc),
           Expression          =>
             Make_Explicit_Dereference (Loc,
-              New_Reference_To (RTE (RE_Current_Master), Loc)));
+              New_Occurrence_Of (RTE (RE_Current_Master), Loc)));
 
       --  The master is inserted at the start of the declarative list of the
       --  context.
@@ -3726,7 +3735,7 @@ package body Exp_Ch9 is
       Master_Decl :=
         Make_Object_Renaming_Declaration (Loc,
           Defining_Identifier => Master_Id,
-          Subtype_Mark        => New_Reference_To (RTE (RE_Master_Id), Loc),
+          Subtype_Mark        => New_Occurrence_Of (RTE (RE_Master_Id), Loc),
           Name                => Make_Identifier (Loc, Name_uMaster));
 
       Insert_Action (Context, Master_Decl);
@@ -3876,7 +3885,7 @@ package body Exp_Ch9 is
             Append_To (Op_Stats,
               Make_Procedure_Call_Statement (End_Loc,
                 Name                   =>
-                  New_Reference_To (RTE (RE_Complete_Entry_Body), Loc),
+                  New_Occurrence_Of (RTE (RE_Complete_Entry_Body), Loc),
                 Parameter_Associations => New_List (
                   Make_Attribute_Reference (End_Loc,
                     Prefix         =>
@@ -3918,12 +3927,12 @@ package body Exp_Ch9 is
          case Corresponding_Runtime_Package (Pid) is
             when System_Tasking_Protected_Objects_Entries =>
                Complete :=
-                 New_Reference_To
+                 New_Occurrence_Of
                    (RTE (RE_Exceptional_Complete_Entry_Body), Loc);
 
             when System_Tasking_Protected_Objects_Single_Entry =>
                Complete :=
-                 New_Reference_To
+                 New_Occurrence_Of
                    (RTE (RE_Exceptional_Complete_Single_Entry_Body), Loc);
 
             when others =>
@@ -3963,7 +3972,7 @@ package body Exp_Ch9 is
                                Attribute_Name => Name_Unchecked_Access),
 
                            Make_Function_Call (Han_Loc,
-                             Name => New_Reference_To (
+                             Name => New_Occurrence_Of (
                                RTE (RE_Get_GNAT_Exception), Loc)))))))));
       end if;
    end Build_Protected_Entry;
@@ -3994,18 +4003,18 @@ package body Exp_Ch9 is
               Defining_Identifier =>
                 Make_Defining_Identifier (Loc, Name_uO),
               Parameter_Type =>
-                New_Reference_To (RTE (RE_Address), Loc)),
+                New_Occurrence_Of (RTE (RE_Address), Loc)),
 
             Make_Parameter_Specification (Loc,
               Defining_Identifier => P,
               Parameter_Type =>
-                New_Reference_To (RTE (RE_Address), Loc)),
+                New_Occurrence_Of (RTE (RE_Address), Loc)),
 
             Make_Parameter_Specification (Loc,
               Defining_Identifier =>
                 Make_Defining_Identifier (Loc, Name_uE),
               Parameter_Type =>
-                New_Reference_To (RTE (RE_Protected_Entry_Index), Loc))));
+                New_Occurrence_Of (RTE (RE_Protected_Entry_Index), Loc))));
    end Build_Protected_Entry_Specification;
 
    --------------------------
@@ -4035,7 +4044,7 @@ package body Exp_Ch9 is
                Make_Defining_Identifier (Sloc (Formal), Chars (Formal)),
              In_Present          => In_Present (Parent (Formal)),
              Out_Present         => Out_Present (Parent (Formal)),
-             Parameter_Type      => New_Reference_To (Etype (Formal), Loc));
+             Parameter_Type      => New_Occurrence_Of (Etype (Formal), Loc));
 
          if Unprotected then
             Set_Protected_Formal (Formal, Defining_Identifier (New_Param));
@@ -4058,7 +4067,7 @@ package body Exp_Ch9 is
             (Etype (Ident) = Standard_Void_Type
                and then not Is_RTE (Obj_Type, RE_Address)),
           Parameter_Type =>
-            New_Reference_To (Obj_Type, Loc));
+            New_Occurrence_Of (Obj_Type, Loc));
       Set_Debug_Info_Needed (Defining_Identifier (Decl));
       Prepend_To (New_Plist, Decl);
 
@@ -4204,7 +4213,7 @@ package body Exp_Ch9 is
 
             Return_Stmt :=
               Make_Simple_Return_Statement (Loc,
-                Expression => New_Reference_To (R, Loc));
+                Expression => New_Occurrence_Of (R, Loc));
 
          else
             Unprot_Call := Make_Simple_Return_Statement (Loc,
@@ -4241,13 +4250,13 @@ package body Exp_Ch9 is
 
       case Corresponding_Runtime_Package (Pid) is
          when System_Tasking_Protected_Objects_Entries =>
-            Lock_Name := New_Reference_To (RTE (RE_Lock_Entries), Loc);
+            Lock_Name := New_Occurrence_Of (RTE (RE_Lock_Entries), Loc);
 
          when System_Tasking_Protected_Objects_Single_Entry =>
-            Lock_Name := New_Reference_To (RTE (RE_Lock_Entry), Loc);
+            Lock_Name := New_Occurrence_Of (RTE (RE_Lock_Entry), Loc);
 
          when System_Tasking_Protected_Objects =>
-            Lock_Name := New_Reference_To (RTE (Lock_Kind), Loc);
+            Lock_Name := New_Occurrence_Of (RTE (Lock_Kind), Loc);
 
          when others =>
             raise Program_Error;
@@ -4268,7 +4277,7 @@ package body Exp_Ch9 is
       if Abort_Allowed then
          Stmts := New_List (
            Make_Procedure_Call_Statement (Loc,
-             Name => New_Reference_To (RTE (RE_Abort_Defer), Loc),
+             Name => New_Occurrence_Of (RTE (RE_Abort_Defer), Loc),
              Parameter_Associations => Empty_List),
            Lock_Stmt);
 
@@ -4410,10 +4419,10 @@ package body Exp_Ch9 is
       then
          case Corresponding_Runtime_Package (Conc_Typ) is
             when System_Tasking_Protected_Objects_Entries =>
-               Nam := New_Reference_To (RTE (RE_Service_Entries), Loc);
+               Nam := New_Occurrence_Of (RTE (RE_Service_Entries), Loc);
 
             when System_Tasking_Protected_Objects_Single_Entry =>
-               Nam := New_Reference_To (RTE (RE_Service_Entry), Loc);
+               Nam := New_Occurrence_Of (RTE (RE_Service_Entry), Loc);
 
             when others =>
                raise Program_Error;
@@ -4436,13 +4445,13 @@ package body Exp_Ch9 is
 
          case Corresponding_Runtime_Package (Conc_Typ) is
             when System_Tasking_Protected_Objects_Entries =>
-               Nam := New_Reference_To (RTE (RE_Unlock_Entries), Loc);
+               Nam := New_Occurrence_Of (RTE (RE_Unlock_Entries), Loc);
 
             when System_Tasking_Protected_Objects_Single_Entry =>
-               Nam := New_Reference_To (RTE (RE_Unlock_Entry), Loc);
+               Nam := New_Occurrence_Of (RTE (RE_Unlock_Entry), Loc);
 
             when System_Tasking_Protected_Objects =>
-               Nam := New_Reference_To (RTE (RE_Unlock), Loc);
+               Nam := New_Occurrence_Of (RTE (RE_Unlock), Loc);
 
             when others =>
                raise Program_Error;
@@ -4467,7 +4476,7 @@ package body Exp_Ch9 is
          Append_To (Stmts,
            Make_Procedure_Call_Statement (Loc,
              Name                   =>
-               New_Reference_To (RTE (RE_Abort_Undefer), Loc),
+               New_Occurrence_Of (RTE (RE_Abort_Undefer), Loc),
              Parameter_Associations => Empty_List));
       end if;
    end Build_Protected_Subprogram_Call_Cleanup;
@@ -4693,12 +4702,12 @@ package body Exp_Ch9 is
               Make_Object_Declaration (Loc,
                 Defining_Identifier => X,
                 Object_Definition =>
-                  New_Reference_To (RTE (RE_Task_Entry_Index), Loc),
+                  New_Occurrence_Of (RTE (RE_Task_Entry_Index), Loc),
                 Expression => Actual_Index_Expression (
                   Loc, Entity (Ename), Index, Concval));
 
             Append_To (Decls, Xdecl);
-            Parm2 := New_Reference_To (X, Loc);
+            Parm2 := New_Occurrence_Of (X, Loc);
 
          else
             Xdecl := Empty;
@@ -4709,7 +4718,7 @@ package body Exp_Ch9 is
          --  none, then it is just the null address, since nothing is passed.
 
          if No (Parms) then
-            Parm3 := New_Reference_To (RTE (RE_Null_Address), Loc);
+            Parm3 := New_Occurrence_Of (RTE (RE_Null_Address), Loc);
             P := Empty;
 
          --  Case of parameters present, where third argument is the address
@@ -4734,7 +4743,7 @@ package body Exp_Ch9 is
                       Defining_Identifier => Make_Temporary (Loc, 'J'),
                       Aliased_Present     => True,
                       Object_Definition   =>
-                        New_Reference_To (Etype (Formal), Loc));
+                        New_Occurrence_Of (Etype (Formal), Loc));
 
                   --  Mark the object as not needing initialization since the
                   --  initialization is performed separately, avoiding errors
@@ -4752,7 +4761,7 @@ package body Exp_Ch9 is
                     or else Is_Access_Type (Etype (Formal))
                   then
                      N_Var :=
-                       New_Reference_To (Defining_Identifier (N_Node), Loc);
+                       New_Occurrence_Of (Defining_Identifier (N_Node), Loc);
                      Set_Assignment_OK (N_Var);
                      Append_To (Stats,
                        Make_Assignment_Statement (Loc,
@@ -4766,7 +4775,7 @@ package body Exp_Ch9 is
                     Make_Attribute_Reference (Loc,
                       Attribute_Name => Name_Unchecked_Access,
                     Prefix =>
-                      New_Reference_To (Defining_Identifier (N_Node), Loc)));
+                      New_Occurrence_Of (Defining_Identifier (N_Node), Loc)));
 
                --  If it is a VM_By_Copy_Actual, copy it to a new variable
 
@@ -4776,7 +4785,7 @@ package body Exp_Ch9 is
                       Defining_Identifier => Make_Temporary (Loc, 'J'),
                       Aliased_Present     => True,
                       Object_Definition   =>
-                        New_Reference_To (Etype (Formal), Loc),
+                        New_Occurrence_Of (Etype (Formal), Loc),
                       Expression => New_Copy_Tree (Actual));
                   Set_Assignment_OK (N_Node);
 
@@ -4786,7 +4795,7 @@ package body Exp_Ch9 is
                     Make_Attribute_Reference (Loc,
                       Attribute_Name => Name_Unchecked_Access,
                     Prefix           =>
-                      New_Reference_To (Defining_Identifier (N_Node), Loc)));
+                      New_Occurrence_Of (Defining_Identifier (N_Node), Loc)));
 
                else
                   --  Interface class-wide formal
@@ -4811,7 +4820,7 @@ package body Exp_Ch9 is
                              Prefix =>
                                Relocate_Node (Actual),
                              Selector_Name =>
-                               New_Reference_To (Iface_Tag, Loc)))));
+                               New_Occurrence_Of (Iface_Tag, Loc)))));
                   else
                      --  Generate:
                      --    actual'reference
@@ -4834,13 +4843,13 @@ package body Exp_Ch9 is
               Make_Object_Declaration (Loc,
                 Defining_Identifier => P,
                 Object_Definition   =>
-                  New_Reference_To (Designated_Type (Ent_Acc), Loc),
+                  New_Occurrence_Of (Designated_Type (Ent_Acc), Loc),
                 Expression          =>
                   Make_Aggregate (Loc, Expressions => Plist));
 
             Parm3 :=
               Make_Attribute_Reference (Loc,
-                Prefix => New_Reference_To (P, Loc),
+                Prefix => New_Occurrence_Of (P, Loc),
                 Attribute_Name => Name_Address);
 
             Append (Pdecl, Decls);
@@ -4855,7 +4864,7 @@ package body Exp_Ch9 is
                   --  Change the type of the index declaration
 
                   Set_Object_Definition (Xdecl,
-                    New_Reference_To (RTE (RE_Protected_Entry_Index), Loc));
+                    New_Occurrence_Of (RTE (RE_Protected_Entry_Index), Loc));
 
                   --  Some additional declarations for protected entry calls
 
@@ -4871,7 +4880,8 @@ package body Exp_Ch9 is
                     Make_Object_Declaration (Loc,
                       Defining_Identifier => Comm_Name,
                       Object_Definition   =>
-                        New_Reference_To (RTE (RE_Communication_Block), Loc)));
+                        New_Occurrence_Of
+                           (RTE (RE_Communication_Block), Loc)));
 
                   --  Some additional statements for protected entry calls
 
@@ -4885,7 +4895,7 @@ package body Exp_Ch9 is
                   Call :=
                     Make_Procedure_Call_Statement (Loc,
                       Name =>
-                        New_Reference_To (RTE (RE_Protected_Entry_Call), Loc),
+                        New_Occurrence_Of (RTE (RE_Protected_Entry_Call), Loc),
 
                       Parameter_Associations => New_List (
                         Make_Attribute_Reference (Loc,
@@ -4893,7 +4903,7 @@ package body Exp_Ch9 is
                           Prefix         => Parm1),
                         Parm2,
                         Parm3,
-                        New_Reference_To (RTE (RE_Simple_Call), Loc),
+                        New_Occurrence_Of (RTE (RE_Simple_Call), Loc),
                         New_Occurrence_Of (Comm_Name, Loc)));
 
                when System_Tasking_Protected_Objects_Single_Entry =>
@@ -4903,7 +4913,7 @@ package body Exp_Ch9 is
 
                   Call :=
                     Make_Procedure_Call_Statement (Loc,
-                      Name => New_Reference_To (
+                      Name => New_Occurrence_Of (
                         RTE (RE_Protected_Single_Entry_Call), Loc),
 
                       Parameter_Associations => New_List (
@@ -4921,7 +4931,7 @@ package body Exp_Ch9 is
          else
             Call :=
               Make_Procedure_Call_Statement (Loc,
-                Name => New_Reference_To (RTE (RE_Call_Simple), Loc),
+                Name => New_Occurrence_Of (RTE (RE_Call_Simple), Loc),
                 Parameter_Associations => New_List (Parm1, Parm2, Parm3));
 
          end if;
@@ -4947,7 +4957,7 @@ package body Exp_Ch9 is
                       Expression =>
                         Make_Explicit_Dereference (Loc,
                           Make_Selected_Component (Loc,
-                            Prefix => New_Reference_To (P, Loc),
+                            Prefix => New_Occurrence_Of (P, Loc),
                             Selector_Name =>
                               Make_Identifier (Loc, Chars (Formal)))));
 
@@ -5036,9 +5046,11 @@ package body Exp_Ch9 is
 
       if Present (Chain) then
          if Restricted_Profile then
-            Name := New_Reference_To (RTE (RE_Activate_Restricted_Tasks), Loc);
+            Name := New_Occurrence_Of
+                      (RTE (RE_Activate_Restricted_Tasks), Loc);
          else
-            Name := New_Reference_To (RTE (RE_Activate_Tasks), Loc);
+            Name := New_Occurrence_Of
+                      (RTE (RE_Activate_Tasks), Loc);
          end if;
 
          Call :=
@@ -5134,7 +5146,7 @@ package body Exp_Ch9 is
    begin
       Block :=
         Make_Block_Statement (Loc,
-          Identifier   => New_Reference_To (Blkent, Loc),
+          Identifier   => New_Occurrence_Of (Blkent, Loc),
           Declarations => New_List (
 
             --  _Chain  : Activation_Chain;
@@ -5143,7 +5155,7 @@ package body Exp_Ch9 is
               Defining_Identifier => Chain,
               Aliased_Present     => True,
               Object_Definition   =>
-                New_Reference_To (RTE (RE_Activation_Chain), Loc))),
+                New_Occurrence_Of (RTE (RE_Activation_Chain), Loc))),
 
           Handled_Statement_Sequence =>
             Make_Handled_Sequence_Of_Statements (Loc,
@@ -5153,16 +5165,16 @@ package body Exp_Ch9 is
                 --  Init (Args);
 
                 Make_Procedure_Call_Statement (Loc,
-                  Name                   => New_Reference_To (Init, Loc),
+                  Name                   => New_Occurrence_Of (Init, Loc),
                   Parameter_Associations => Args),
 
                 --  Activate_Tasks (_Chain);
 
                 Make_Procedure_Call_Statement (Loc,
-                  Name => New_Reference_To (RTE (RE_Activate_Tasks), Loc),
+                  Name => New_Occurrence_Of (RTE (RE_Activate_Tasks), Loc),
                   Parameter_Associations => New_List (
                     Make_Attribute_Reference (Loc,
-                      Prefix         => New_Reference_To (Chain, Loc),
+                      Prefix         => New_Occurrence_Of (Chain, Loc),
                       Attribute_Name => Name_Unchecked_Access))))),
 
           Has_Created_Identifier => True,
@@ -5196,15 +5208,15 @@ package body Exp_Ch9 is
    begin
       Append_To (Init_Stmts,
         Make_Procedure_Call_Statement (Loc,
-          Name => New_Reference_To (RTE (RE_Activate_Tasks), Loc),
+          Name => New_Occurrence_Of (RTE (RE_Activate_Tasks), Loc),
           Parameter_Associations => New_List (
             Make_Attribute_Reference (Loc,
-              Prefix         => New_Reference_To (Chain, Loc),
+              Prefix         => New_Occurrence_Of (Chain, Loc),
               Attribute_Name => Name_Unchecked_Access))));
 
       Block :=
         Make_Block_Statement (Loc,
-          Identifier => New_Reference_To (Blkent, Loc),
+          Identifier => New_Occurrence_Of (Blkent, Loc),
           Declarations => New_List (
 
             --  _Chain  : Activation_Chain;
@@ -5213,7 +5225,7 @@ package body Exp_Ch9 is
               Defining_Identifier => Chain,
               Aliased_Present     => True,
               Object_Definition   =>
-                New_Reference_To (RTE (RE_Activation_Chain), Loc))),
+                New_Occurrence_Of (RTE (RE_Activation_Chain), Loc))),
 
           Handled_Statement_Sequence =>
             Make_Handled_Sequence_Of_Statements (Loc, Init_Stmts),
@@ -5272,7 +5284,7 @@ package body Exp_Ch9 is
               Parameter_Type      =>
                 Make_Access_Definition (Loc,
                   Subtype_Mark =>
-                    New_Reference_To (Corresponding_Record_Type (T), Loc)))));
+                    New_Occurrence_Of (Corresponding_Record_Type (T), Loc)))));
    end Build_Task_Proc_Specification;
 
    ---------------------------------------
@@ -5370,7 +5382,7 @@ package body Exp_Ch9 is
                       Make_Component_Definition (Loc,
                         Aliased_Present    => False,
                         Subtype_Indication =>
-                          New_Reference_To (Standard_Character, Loc))));
+                          New_Occurrence_Of (Standard_Character, Loc))));
             end;
 
             Insert_After (Current_Node, Efam_Decl);
@@ -5564,7 +5576,7 @@ package body Exp_Ch9 is
             if Is_Current_Task (Entity (N)) then
                return
                  Make_Function_Call (Loc,
-                   Name => New_Reference_To (RTE (RE_Self), Loc));
+                   Name => New_Occurrence_Of (RTE (RE_Self), Loc));
 
             else
                declare
@@ -5581,7 +5593,7 @@ package body Exp_Ch9 is
                         New_Occurrence_Of (RTE (RO_ST_Task_Id), Loc),
                       Expression          =>
                         Make_Function_Call (Loc,
-                          Name => New_Reference_To (RTE (RE_Self), Loc)));
+                          Name => New_Occurrence_Of (RTE (RE_Self), Loc)));
                   Prepend (Decl, Declarations (T_Body));
                   Analyze (Decl);
                   Set_Scope (T_Self, Entity (N));
@@ -5593,7 +5605,7 @@ package body Exp_Ch9 is
             pragma Assert (Is_Protected_Type (Entity (N)));
 
             return
-              New_Reference_To (Find_Protection_Object (Current_Scope), Loc);
+              New_Occurrence_Of (Find_Protection_Object (Current_Scope), Loc);
          end if;
 
       else
@@ -5761,7 +5773,7 @@ package body Exp_Ch9 is
                  Sloc,
                  Make_Attribute_Reference (Sloc,
                    Attribute_Name => Name_Pos,
-                   Prefix         => New_Reference_To (Base_Type (S), Sloc),
+                   Prefix         => New_Occurrence_Of (Base_Type (S), Sloc),
                    Expressions    => New_List (Relocate_Node (Index))),
                  Type_Low_Bound (S),
                  Ttyp,
@@ -5916,7 +5928,7 @@ package body Exp_Ch9 is
 
             begin
                Ent := Make_Temporary (Loc, 'L');
-               Lab := Make_Label (Loc, New_Reference_To (Ent, Loc));
+               Lab := Make_Label (Loc, New_Occurrence_Of (Ent, Loc));
                Ldecl :=
                  Make_Implicit_Label_Declaration (Loc,
                    Defining_Identifier  => Ent,
@@ -5924,7 +5936,7 @@ package body Exp_Ch9 is
                Append (Lab, Statements (Handled_Statement_Sequence (N)));
 
                Ent := Make_Temporary (Loc, 'L');
-               Lab := Make_Label (Loc, New_Reference_To (Ent, Loc));
+               Lab := Make_Label (Loc, New_Occurrence_Of (Ent, Loc));
                Ldecl2 :=
                  Make_Implicit_Label_Declaration (Loc,
                    Defining_Identifier  => Ent,
@@ -5948,7 +5960,7 @@ package body Exp_Ch9 is
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => Ann,
                    Object_Definition   =>
-                     New_Reference_To (RTE (RE_Address), Loc));
+                     New_Occurrence_Of (RTE (RE_Address), Loc));
 
                Insert_Before_And_Analyze (N, Adecl);
                Insert_Before_And_Analyze (N, Ldecl);
@@ -5999,7 +6011,7 @@ package body Exp_Ch9 is
                     Make_Object_Declaration (Loc,
                       Defining_Identifier => Ann,
                       Object_Definition   =>
-                        New_Reference_To (RTE (RE_Address), Loc));
+                        New_Occurrence_Of (RTE (RE_Address), Loc));
 
                   Insert_Before_And_Analyze (Sel_Acc, Adecl);
 
@@ -6071,9 +6083,9 @@ package body Exp_Ch9 is
                        Prefix        =>
                          Unchecked_Convert_To (
                            Entry_Parameters_Type (Ent),
-                           New_Reference_To (Ann, Loc)),
+                           New_Occurrence_Of (Ann, Loc)),
                        Selector_Name =>
-                         New_Reference_To (Comp, Loc));
+                         New_Occurrence_Of (Comp, Loc));
 
                   Decl :=
                     Build_Renamed_Formal_Declaration
@@ -6366,7 +6378,7 @@ package body Exp_Ch9 is
 
                   Make_Unchecked_Type_Conversion (Loc,
                     Subtype_Mark =>
-                      New_Reference_To (RTE (RO_ST_Task_Id), Loc),
+                      New_Occurrence_Of (RTE (RO_ST_Task_Id), Loc),
                     Expression   =>
                       Make_Selected_Component (Loc,
                         Prefix        => New_Copy_Tree (Tasknm),
@@ -6385,10 +6397,10 @@ package body Exp_Ch9 is
 
       Rewrite (N,
         Make_Procedure_Call_Statement (Loc,
-          Name => New_Reference_To (RTE (RE_Abort_Tasks), Loc),
+          Name => New_Occurrence_Of (RTE (RE_Abort_Tasks), Loc),
           Parameter_Associations => New_List (
             Make_Qualified_Expression (Loc,
-              Subtype_Mark => New_Reference_To (RTE (RE_Task_List), Loc),
+              Subtype_Mark => New_Occurrence_Of (RTE (RE_Task_List), Loc),
               Expression   => Aggr))));
 
       Analyze (N);
@@ -6508,7 +6520,7 @@ package body Exp_Ch9 is
 
          Rewrite (N,
            Make_Procedure_Call_Statement (Loc,
-             Name => New_Reference_To (RTE (RE_Accept_Trivial), Loc),
+             Name => New_Occurrence_Of (RTE (RE_Accept_Trivial), Loc),
              Parameter_Associations => New_List (
                Entry_Index_Expression (Loc, Entity (Ename), Eindx, Ttyp))));
 
@@ -6535,7 +6547,7 @@ package body Exp_Ch9 is
 
          Block :=
            Make_Block_Statement (Loc,
-             Identifier                 => New_Reference_To (Blkent, Loc),
+             Identifier                 => New_Occurrence_Of (Blkent, Loc),
              Declarations               => Declarations (N),
              Handled_Statement_Sequence => Build_Accept_Body (N));
 
@@ -6552,10 +6564,10 @@ package body Exp_Ch9 is
 
          Call :=
            Make_Procedure_Call_Statement (Loc,
-             Name => New_Reference_To (RTE (RE_Accept_Call), Loc),
+             Name => New_Occurrence_Of (RTE (RE_Accept_Call), Loc),
              Parameter_Associations => New_List (
                Entry_Index_Expression (Loc, Entity (Ename), Eindx, Ttyp),
-               New_Reference_To (Ann, Loc)));
+               New_Occurrence_Of (Ann, Loc)));
 
          if Parent (Stats) = N then
             Prepend (Call, Statements (Stats));
@@ -7008,7 +7020,7 @@ package body Exp_Ch9 is
               Make_Object_Declaration (Loc,
                 Defining_Identifier => Bnn,
                 Object_Definition   =>
-                  New_Reference_To (RTE (RE_Communication_Block), Loc)));
+                  New_Occurrence_Of (RTE (RE_Communication_Block), Loc)));
 
             --  Call kind processing, generate:
             --    C : Ada.Tags.Prim_Op_Kind;
@@ -7027,7 +7039,7 @@ package body Exp_Ch9 is
                 Defining_Identifier =>
                   Make_Defining_Identifier (Loc, Name_uD),
                 Object_Definition   =>
-                  New_Reference_To
+                  New_Occurrence_Of
                     (RTE (RE_Dummy_Communication_Block), Loc)));
 
             K := Build_K (Loc, Decls, Obj);
@@ -7052,7 +7064,7 @@ package body Exp_Ch9 is
               Make_Object_Declaration (Loc,
                 Defining_Identifier => T,
                 Object_Definition   =>
-                  New_Reference_To (Standard_Boolean, Loc)));
+                  New_Occurrence_Of (Standard_Boolean, Loc)));
 
             ------------------------------
             -- Protected entry handling --
@@ -7070,11 +7082,11 @@ package body Exp_Ch9 is
 
             Prepend_To (Cleanup_Stmts,
               Make_Assignment_Statement (Loc,
-                Name       => New_Reference_To (Bnn, Loc),
+                Name       => New_Occurrence_Of (Bnn, Loc),
                 Expression =>
                   Make_Unchecked_Type_Conversion (Loc,
                     Subtype_Mark =>
-                      New_Reference_To (RTE (RE_Communication_Block), Loc),
+                      New_Occurrence_Of (RTE (RE_Communication_Block), Loc),
                     Expression   => Make_Identifier (Loc, Name_uD))));
 
             --  Generate:
@@ -7083,19 +7095,19 @@ package body Exp_Ch9 is
             Prepend_To (Cleanup_Stmts,
               Make_Procedure_Call_Statement (Loc,
                 Name =>
-                  New_Reference_To
+                  New_Occurrence_Of
                     (Find_Prim_Op
                        (Etype (Etype (Obj)), Name_uDisp_Asynchronous_Select),
                      Loc),
                 Parameter_Associations =>
                   New_List (
                     New_Copy_Tree (Obj),             --  <object>
-                    New_Reference_To (S, Loc),       --  S
+                    New_Occurrence_Of (S, Loc),       --  S
                     Make_Attribute_Reference (Loc,   --  P'Address
-                      Prefix         => New_Reference_To (P, Loc),
+                      Prefix         => New_Occurrence_Of (P, Loc),
                       Attribute_Name => Name_Address),
                     Make_Identifier (Loc, Name_uD),  --  D
-                    New_Reference_To (B, Loc))));    --  B
+                    New_Occurrence_Of (B, Loc))));    --  B
 
             --  Generate:
             --    if Enqueued (Bnn) then
@@ -7107,9 +7119,9 @@ package body Exp_Ch9 is
                 Condition =>
                   Make_Function_Call (Loc,
                     Name =>
-                      New_Reference_To (RTE (RE_Enqueued), Loc),
+                      New_Occurrence_Of (RTE (RE_Enqueued), Loc),
                     Parameter_Associations =>
-                      New_List (New_Reference_To (Bnn, Loc))),
+                      New_List (New_Occurrence_Of (Bnn, Loc))),
 
                 Then_Statements =>
                   New_Copy_List_Tree (Astats)));
@@ -7165,9 +7177,9 @@ package body Exp_Ch9 is
                     Right_Opnd =>
                       Make_Function_Call (Loc,
                         Name =>
-                          New_Reference_To (RTE (RE_Cancelled), Loc),
+                          New_Occurrence_Of (RTE (RE_Cancelled), Loc),
                         Parameter_Associations =>
-                          New_List (New_Reference_To (Bnn, Loc)))),
+                          New_List (New_Occurrence_Of (Bnn, Loc)))),
 
                 Then_Statements =>
                   New_Copy_List_Tree (Tstats)));
@@ -7189,11 +7201,11 @@ package body Exp_Ch9 is
             Append_To (TaskE_Stmts,
               Make_Assignment_Statement (Loc,
                 Name =>
-                  New_Reference_To (Bnn, Loc),
+                  New_Occurrence_Of (Bnn, Loc),
                 Expression =>
                   Make_Unchecked_Type_Conversion (Loc,
                     Subtype_Mark =>
-                      New_Reference_To (RTE (RE_Communication_Block), Loc),
+                      New_Occurrence_Of (RTE (RE_Communication_Block), Loc),
                     Expression   => Make_Identifier (Loc, Name_uD))));
 
             --  Generate:
@@ -7202,7 +7214,7 @@ package body Exp_Ch9 is
             Prepend_To (TaskE_Stmts,
               Make_Procedure_Call_Statement (Loc,
                 Name =>
-                  New_Reference_To (
+                  New_Occurrence_Of (
                     Find_Prim_Op (Etype (Etype (Obj)),
                       Name_uDisp_Asynchronous_Select),
                     Loc),
@@ -7210,19 +7222,19 @@ package body Exp_Ch9 is
                 Parameter_Associations =>
                   New_List (
                     New_Copy_Tree (Obj),             --  <object>
-                    New_Reference_To (S, Loc),       --  S
+                    New_Occurrence_Of (S, Loc),       --  S
                     Make_Attribute_Reference (Loc,   --  P'Address
-                      Prefix         => New_Reference_To (P, Loc),
+                      Prefix         => New_Occurrence_Of (P, Loc),
                       Attribute_Name => Name_Address),
                     Make_Identifier (Loc, Name_uD),  --  D
-                    New_Reference_To (B, Loc))));    --  B
+                    New_Occurrence_Of (B, Loc))));    --  B
 
             --  Generate:
             --    Abort_Defer;
 
             Prepend_To (TaskE_Stmts,
               Make_Procedure_Call_Statement (Loc,
-                Name => New_Reference_To (RTE (RE_Abort_Defer), Loc),
+                Name => New_Occurrence_Of (RTE (RE_Abort_Defer), Loc),
                 Parameter_Associations => No_List));
 
             --  Generate:
@@ -7233,7 +7245,7 @@ package body Exp_Ch9 is
 
             Prepend_To (Cleanup_Stmts,
               Make_Procedure_Call_Statement (Loc,
-                Name => New_Reference_To (RTE (RE_Abort_Undefer), Loc),
+                Name => New_Occurrence_Of (RTE (RE_Abort_Undefer), Loc),
                 Parameter_Associations => No_List));
 
             --  Wrap the statements in a block. Exp_Ch7.Expand_Cleanup_Actions
@@ -7282,7 +7294,7 @@ package body Exp_Ch9 is
             Append_To (TaskE_Stmts,
               Make_Implicit_If_Statement (N,
                 Condition =>
-                  Make_Op_Not (Loc, Right_Opnd => New_Reference_To (T, Loc)),
+                  Make_Op_Not (Loc, Right_Opnd => New_Occurrence_Of (T, Loc)),
 
                 Then_Statements =>
                   New_Copy_List_Tree (Tstats)));
@@ -7311,15 +7323,15 @@ package body Exp_Ch9 is
             Append_To (Conc_Typ_Stmts,
               Make_Procedure_Call_Statement (Loc,
                 Name =>
-                  New_Reference_To
+                  New_Occurrence_Of
                     (Find_Prim_Op (Etype (Etype (Obj)),
                                    Name_uDisp_Get_Prim_Op_Kind),
                      Loc),
                 Parameter_Associations =>
                   New_List (
                     New_Copy_Tree (Obj),
-                    New_Reference_To (S, Loc),
-                    New_Reference_To (C, Loc))));
+                    New_Occurrence_Of (S, Loc),
+                    New_Occurrence_Of (C, Loc))));
 
             --  Generate:
             --    if C = POK_Procedure_Entry then
@@ -7335,9 +7347,9 @@ package body Exp_Ch9 is
                 Condition =>
                   Make_Op_Eq (Loc,
                     Left_Opnd  =>
-                      New_Reference_To (C, Loc),
+                      New_Occurrence_Of (C, Loc),
                     Right_Opnd =>
-                      New_Reference_To (RTE (RE_POK_Protected_Entry), Loc)),
+                      New_Occurrence_Of (RTE (RE_POK_Protected_Entry), Loc)),
 
                 Then_Statements =>
                   ProtE_Stmts,
@@ -7348,9 +7360,9 @@ package body Exp_Ch9 is
                       Condition =>
                         Make_Op_Eq (Loc,
                           Left_Opnd  =>
-                            New_Reference_To (C, Loc),
+                            New_Occurrence_Of (C, Loc),
                           Right_Opnd =>
-                            New_Reference_To (RTE (RE_POK_Task_Entry), Loc)),
+                            New_Occurrence_Of (RTE (RE_POK_Task_Entry), Loc)),
 
                       Then_Statements =>
                         TaskE_Stmts)),
@@ -7402,19 +7414,19 @@ package body Exp_Ch9 is
 
             if Is_RTE (Pdef, RO_CA_Delay_For) then
                Enqueue_Call :=
-                 New_Reference_To (RTE (RE_Enqueue_Duration), Loc);
+                 New_Occurrence_Of (RTE (RE_Enqueue_Duration), Loc);
 
             elsif Is_RTE (Pdef, RO_CA_Delay_Until) then
                Enqueue_Call :=
-                 New_Reference_To (RTE (RE_Enqueue_Calendar), Loc);
+                 New_Occurrence_Of (RTE (RE_Enqueue_Calendar), Loc);
 
             else pragma Assert (Is_RTE (Pdef, RO_RT_Delay_Until));
-               Enqueue_Call := New_Reference_To (RTE (RE_Enqueue_RT), Loc);
+               Enqueue_Call := New_Occurrence_Of (RTE (RE_Enqueue_RT), Loc);
             end if;
 
             Append_To (Parameter_Associations (Ecall),
               Make_Attribute_Reference (Loc,
-                Prefix         => New_Reference_To (Dblock_Ent, Loc),
+                Prefix         => New_Occurrence_Of (Dblock_Ent, Loc),
                 Attribute_Name => Name_Unchecked_Access));
 
             --  Create the inner block to protect the abortable part
@@ -7423,11 +7435,11 @@ package body Exp_Ch9 is
 
             Prepend_To (Astats,
               Make_Procedure_Call_Statement (Loc,
-                Name => New_Reference_To (RTE (RE_Abort_Undefer), Loc)));
+                Name => New_Occurrence_Of (RTE (RE_Abort_Undefer), Loc)));
 
             Abortable_Block :=
               Make_Block_Statement (Loc,
-                Identifier                 => New_Reference_To (Blk_Ent, Loc),
+                Identifier                 => New_Occurrence_Of (Blk_Ent, Loc),
                 Handled_Statement_Sequence =>
                   Make_Handled_Sequence_Of_Statements (Loc,
                     Statements => Astats),
@@ -7461,11 +7473,11 @@ package body Exp_Ch9 is
               Make_Implicit_If_Statement (N,
                 Condition =>
                   Make_Function_Call (Loc,
-                    Name => New_Reference_To (
+                    Name => New_Occurrence_Of (
                       RTE (RE_Timed_Out), Loc),
                     Parameter_Associations => New_List (
                       Make_Attribute_Reference (Loc,
-                        Prefix         => New_Reference_To (Dblock_Ent, Loc),
+                        Prefix         => New_Occurrence_Of (Dblock_Ent, Loc),
                         Attribute_Name => Name_Unchecked_Access))),
                 Then_Statements => Tstats));
 
@@ -7480,7 +7492,7 @@ package body Exp_Ch9 is
                     Defining_Identifier => Dblock_Ent,
                     Aliased_Present     => True,
                     Object_Definition   =>
-                      New_Reference_To (RTE (RE_Delay_Block), Loc))),
+                      New_Occurrence_Of (RTE (RE_Delay_Block), Loc))),
 
                 Handled_Statement_Sequence =>
                   Make_Handled_Sequence_Of_Statements (Loc, Stmts)));
@@ -7544,7 +7556,7 @@ package body Exp_Ch9 is
          end loop;
 
          pragma Assert (Present (Param));
-         Rewrite (Param, New_Reference_To (RTE (RE_Asynchronous_Call), Loc));
+         Rewrite (Param, New_Occurrence_Of (RTE (RE_Asynchronous_Call), Loc));
          Analyze (Param);
 
          --  Append an if statement to execute the abortable part
@@ -7556,14 +7568,14 @@ package body Exp_Ch9 is
            Make_Implicit_If_Statement (N,
              Condition =>
                Make_Function_Call (Loc,
-                 Name => New_Reference_To (RTE (RE_Enqueued), Loc),
+                 Name => New_Occurrence_Of (RTE (RE_Enqueued), Loc),
                  Parameter_Associations => New_List (
-                   New_Reference_To (Cancel_Param, Loc))),
+                   New_Occurrence_Of (Cancel_Param, Loc))),
              Then_Statements => Astats));
 
          Abortable_Block :=
            Make_Block_Statement (Loc,
-             Identifier => New_Reference_To (Blk_Ent, Loc),
+             Identifier => New_Occurrence_Of (Blk_Ent, Loc),
              Handled_Statement_Sequence =>
                Make_Handled_Sequence_Of_Statements (Loc, Statements => Stmts),
              Has_Created_Identifier => True,
@@ -7582,12 +7594,12 @@ package body Exp_Ch9 is
 
             else
                Handler_Stmt := Make_Procedure_Call_Statement (Loc,
-                 Name => New_Reference_To (RTE (RE_Abort_Undefer), Loc),
+                 Name => New_Occurrence_Of (RTE (RE_Abort_Undefer), Loc),
                  Parameter_Associations => No_List);
             end if;
          else
             Handler_Stmt := Make_Procedure_Call_Statement (Loc,
-              Name => New_Reference_To (RTE (RE_Update_Exception), Loc),
+              Name => New_Occurrence_Of (RTE (RE_Update_Exception), Loc),
               Parameter_Associations => New_List (
                 Make_Function_Call (Loc,
                   Name => New_Occurrence_Of
@@ -7613,7 +7625,7 @@ package body Exp_Ch9 is
                --     Abort_Undefer.all;
 
                      Exception_Choices =>
-                       New_List (New_Reference_To (Stand.Abort_Signal, Loc)),
+                       New_List (New_Occurrence_Of (Stand.Abort_Signal, Loc)),
                      Statements => New_List (Handler_Stmt))))),
 
          --  if not Cancelled (Bnn) then
@@ -7643,7 +7655,8 @@ package body Exp_Ch9 is
          Prepend_To (Decls,
            Make_Object_Declaration (Loc,
              Defining_Identifier => B,
-             Object_Definition   => New_Reference_To (Standard_Boolean, Loc)));
+             Object_Definition   =>
+               New_Occurrence_Of (Standard_Boolean, Loc)));
 
          Cancel_Param := Make_Defining_Identifier (Loc, Name_uC);
 
@@ -7652,7 +7665,8 @@ package body Exp_Ch9 is
          Prepend_To (Decls,
            Make_Object_Declaration (Loc,
              Defining_Identifier => Cancel_Param,
-             Object_Definition   => New_Reference_To (Standard_Boolean, Loc)));
+             Object_Definition   =>
+               New_Occurrence_Of (Standard_Boolean, Loc)));
 
          --  Remove and save the call to Call_Simple
 
@@ -7674,11 +7688,11 @@ package body Exp_Ch9 is
 
          Prepend_To (Astats,
            Make_Procedure_Call_Statement (Loc,
-             Name => New_Reference_To (RTE (RE_Abort_Undefer), Loc)));
+             Name => New_Occurrence_Of (RTE (RE_Abort_Undefer), Loc)));
 
          Abortable_Block :=
            Make_Block_Statement (Loc,
-             Identifier                 => New_Reference_To (Blk_Ent, Loc),
+             Identifier                 => New_Occurrence_Of (Blk_Ent, Loc),
              Handled_Statement_Sequence =>
                Make_Handled_Sequence_Of_Statements (Loc, Statements => Astats),
              Has_Created_Identifier     => True,
@@ -7700,12 +7714,12 @@ package body Exp_Ch9 is
          Params := Parameter_Associations (Call);
 
          Append_To (Params,
-           New_Reference_To (RTE (RE_Asynchronous_Call), Loc));
-         Append_To (Params, New_Reference_To (B, Loc));
+           New_Occurrence_Of (RTE (RE_Asynchronous_Call), Loc));
+         Append_To (Params, New_Occurrence_Of (B, Loc));
 
          Rewrite (Call,
            Make_Procedure_Call_Statement (Loc,
-             Name => New_Reference_To (RTE (RE_Task_Entry_Call), Loc),
+             Name => New_Occurrence_Of (RTE (RE_Task_Entry_Call), Loc),
              Parameter_Associations => Params));
 
          --  Construct statement sequence for new block
@@ -7713,14 +7727,14 @@ package body Exp_Ch9 is
          Append_To (Stmts,
            Make_Implicit_If_Statement (N,
              Condition =>
-               Make_Op_Not (Loc, New_Reference_To (Cancel_Param, Loc)),
+               Make_Op_Not (Loc, New_Occurrence_Of (Cancel_Param, Loc)),
              Then_Statements => Tstats));
 
          --  Protected the call against abort
 
          Prepend_To (Stmts,
            Make_Procedure_Call_Statement (Loc,
-             Name => New_Reference_To (RTE (RE_Abort_Defer), Loc),
+             Name => New_Occurrence_Of (RTE (RE_Abort_Defer), Loc),
              Parameter_Associations => Empty_List));
       end if;
 
@@ -7934,19 +7948,19 @@ package body Exp_Ch9 is
          Append_To (Conc_Typ_Stmts,
            Make_Procedure_Call_Statement (Loc,
              Name =>
-               New_Reference_To (
+               New_Occurrence_Of (
                  Find_Prim_Op (Etype (Etype (Obj)),
                    Name_uDisp_Conditional_Select),
                  Loc),
              Parameter_Associations =>
                New_List (
                  New_Copy_Tree (Obj),            --  <object>
-                 New_Reference_To (S, Loc),      --  S
+                 New_Occurrence_Of (S, Loc),      --  S
                  Make_Attribute_Reference (Loc,  --  P'Address
-                   Prefix         => New_Reference_To (P, Loc),
+                   Prefix         => New_Occurrence_Of (P, Loc),
                    Attribute_Name => Name_Address),
-                 New_Reference_To (C, Loc),      --  C
-                 New_Reference_To (B, Loc))));   --  B
+                 New_Occurrence_Of (C, Loc),      --  C
+                 New_Occurrence_Of (B, Loc))));   --  B
 
          --  Generate:
          --    if C = POK_Protected_Entry
@@ -7970,17 +7984,17 @@ package body Exp_Ch9 is
                     Left_Opnd =>
                       Make_Op_Eq (Loc,
                         Left_Opnd =>
-                          New_Reference_To (C, Loc),
+                          New_Occurrence_Of (C, Loc),
                         Right_Opnd =>
-                          New_Reference_To (RTE (
+                          New_Occurrence_Of (RTE (
                             RE_POK_Protected_Entry), Loc)),
 
                     Right_Opnd =>
                       Make_Op_Eq (Loc,
                         Left_Opnd =>
-                          New_Reference_To (C, Loc),
+                          New_Occurrence_Of (C, Loc),
                         Right_Opnd =>
-                          New_Reference_To (RTE (RE_POK_Task_Entry), Loc))),
+                          New_Occurrence_Of (RTE (RE_POK_Task_Entry), Loc))),
 
                 Then_Statements => Unpack));
          end if;
@@ -8007,26 +8021,26 @@ package body Exp_Ch9 is
                  Left_Opnd =>
                    Make_Op_Eq (Loc,
                      Left_Opnd =>
-                       New_Reference_To (C, Loc),
+                       New_Occurrence_Of (C, Loc),
                      Right_Opnd =>
-                       New_Reference_To (RTE (RE_POK_Procedure), Loc)),
+                       New_Occurrence_Of (RTE (RE_POK_Procedure), Loc)),
 
                  Right_Opnd =>
                    Make_Or_Else (Loc,
                      Left_Opnd =>
                        Make_Op_Eq (Loc,
                          Left_Opnd =>
-                           New_Reference_To (C, Loc),
+                           New_Occurrence_Of (C, Loc),
                          Right_Opnd =>
-                           New_Reference_To (RTE (
+                           New_Occurrence_Of (RTE (
                              RE_POK_Protected_Procedure), Loc)),
 
                      Right_Opnd =>
                        Make_Op_Eq (Loc,
                          Left_Opnd =>
-                           New_Reference_To (C, Loc),
+                           New_Occurrence_Of (C, Loc),
                          Right_Opnd =>
-                           New_Reference_To (RTE (
+                           New_Occurrence_Of (RTE (
                              RE_POK_Task_Procedure), Loc)))),
 
              Then_Statements =>
@@ -8034,7 +8048,7 @@ package body Exp_Ch9 is
 
          Append_To (Conc_Typ_Stmts,
            Make_Implicit_If_Statement (N,
-             Condition       => New_Reference_To (B, Loc),
+             Condition       => New_Occurrence_Of (B, Loc),
              Then_Statements => N_Stats,
              Else_Statements => Else_Statements (N)));
 
@@ -8105,7 +8119,8 @@ package body Exp_Ch9 is
             end loop;
 
             pragma Assert (Present (Param));
-            Rewrite (Param, New_Reference_To (RTE (RE_Conditional_Call), Loc));
+            Rewrite (Param,
+              New_Occurrence_Of (RTE (RE_Conditional_Call), Loc));
 
             Analyze (Param);
 
@@ -8126,9 +8141,9 @@ package body Exp_Ch9 is
             Append_To (Stmts,
               Make_Implicit_If_Statement (N,
                 Condition => Make_Function_Call (Loc,
-                  Name => New_Reference_To (RTE (RE_Cancelled), Loc),
+                  Name => New_Occurrence_Of (RTE (RE_Cancelled), Loc),
                   Parameter_Associations => New_List (
-                    New_Reference_To (Defining_Identifier (Decl), Loc))),
+                    New_Occurrence_Of (Defining_Identifier (Decl), Loc))),
                 Then_Statements => Else_Statements (N),
                 Else_Statements => Statements (Alt)));
 
@@ -8145,24 +8160,24 @@ package body Exp_Ch9 is
               Make_Object_Declaration (Loc,
                 Defining_Identifier => B,
                 Object_Definition   =>
-                  New_Reference_To (Standard_Boolean, Loc)));
+                  New_Occurrence_Of (Standard_Boolean, Loc)));
 
             --  Create new call statement
 
             Append_To (Params,
-              New_Reference_To (RTE (RE_Conditional_Call), Loc));
-            Append_To (Params, New_Reference_To (B, Loc));
+              New_Occurrence_Of (RTE (RE_Conditional_Call), Loc));
+            Append_To (Params, New_Occurrence_Of (B, Loc));
 
             Rewrite (Call,
               Make_Procedure_Call_Statement (Loc,
-                Name => New_Reference_To (RTE (RE_Task_Entry_Call), Loc),
+                Name => New_Occurrence_Of (RTE (RE_Task_Entry_Call), Loc),
                 Parameter_Associations => Params));
 
             --  Construct statement sequence for new block
 
             Append_To (Stmts,
               Make_Implicit_If_Statement (N,
-                Condition       => New_Reference_To (B, Loc),
+                Condition       => New_Occurrence_Of (B, Loc),
                 Then_Statements => Statements (Alt),
                 Else_Statements => Else_Statements (N)));
          end if;
@@ -8192,7 +8207,7 @@ package body Exp_Ch9 is
    begin
       Rewrite (N,
         Make_Procedure_Call_Statement (Loc,
-          Name => New_Reference_To (RTE (RO_CA_Delay_For), Loc),
+          Name => New_Occurrence_Of (RTE (RO_CA_Delay_For), Loc),
           Parameter_Associations => New_List (Expression (N))));
       Analyze (N);
    end Expand_N_Delay_Relative_Statement;
@@ -8217,7 +8232,7 @@ package body Exp_Ch9 is
 
       Rewrite (N,
         Make_Procedure_Call_Statement (Loc,
-          Name => New_Reference_To (Typ, Loc),
+          Name => New_Occurrence_Of (Typ, Loc),
           Parameter_Associations => New_List (Expression (N))));
 
       Analyze (N);
@@ -8335,7 +8350,7 @@ package body Exp_Ch9 is
                   Make_Access_To_Object_Definition (Loc,
                     All_Present        => True,
                     Constant_Present   => Ekind (Formal) = E_In_Parameter,
-                    Subtype_Indication => New_Reference_To (Ftype, Loc)));
+                    Subtype_Indication => New_Occurrence_Of (Ftype, Loc)));
 
             Insert_After (Last_Decl, Decl);
             Last_Decl := Decl;
@@ -8346,7 +8361,7 @@ package body Exp_Ch9 is
                 Component_Definition =>
                   Make_Component_Definition (Loc,
                     Aliased_Present    => False,
-                    Subtype_Indication => New_Reference_To (Ctype, Loc))));
+                    Subtype_Indication => New_Occurrence_Of (Ctype, Loc))));
 
             Next_Formal_With_Extras (Formal);
          end loop;
@@ -8379,7 +8394,7 @@ package body Exp_Ch9 is
              Type_Definition     =>
                Make_Access_To_Object_Definition (Loc,
                  All_Present        => True,
-                 Subtype_Indication => New_Reference_To (Rec_Ent, Loc)));
+                 Subtype_Indication => New_Occurrence_Of (Rec_Ent, Loc)));
 
          Insert_After (Last_Decl, Decl);
       end if;
@@ -8549,7 +8564,7 @@ package body Exp_Ch9 is
               New_List (
                 Make_Procedure_Call_Statement (Loc,
                   Name =>
-                    New_Reference_To (Corresponding_Spec (Prot_Bod), Loc),
+                    New_Occurrence_Of (Corresponding_Spec (Prot_Bod), Loc),
                   Parameter_Associations => Actuals));
 
          else
@@ -8561,7 +8576,7 @@ package body Exp_Ch9 is
                   Expression =>
                     Make_Function_Call (Loc,
                       Name =>
-                        New_Reference_To (Corresponding_Spec (Prot_Bod), Loc),
+                        New_Occurrence_Of (Corresponding_Spec (Prot_Bod), Loc),
                       Parameter_Associations => Actuals)));
          end if;
 
@@ -8966,10 +8981,10 @@ package body Exp_Ch9 is
            Make_Aggregate (Loc,
              Expressions => New_List (
                Make_Attribute_Reference (Loc,
-                 Prefix         => New_Reference_To (Bdef, Loc),
+                 Prefix         => New_Occurrence_Of (Bdef, Loc),
                  Attribute_Name => Name_Unrestricted_Access),
                Make_Attribute_Reference (Loc,
-                 Prefix         => New_Reference_To (Edef, Loc),
+                 Prefix         => New_Occurrence_Of (Edef, Loc),
                  Attribute_Name => Name_Unrestricted_Access))));
       end Expand_Entry_Declaration;
 
@@ -8987,13 +9002,13 @@ package body Exp_Ch9 is
          Proc_Address : constant Node_Id :=
                           Make_Attribute_Reference (Loc,
                             Prefix         =>
-                              New_Reference_To (Prot_Proc, Loc),
+                              New_Occurrence_Of (Prot_Proc, Loc),
                             Attribute_Name => Name_Address);
 
          RTS_Call     : constant Entity_Id :=
                           Make_Procedure_Call_Statement (Loc,
                             Name                   =>
-                              New_Reference_To
+                              New_Occurrence_Of
                                 (RTE (RE_Register_Interrupt_Handler), Loc),
                             Parameter_Associations => New_List (Proc_Address));
       begin
@@ -9201,7 +9216,7 @@ package body Exp_Ch9 is
                Protection_Subtype :=
                  Make_Subtype_Indication (Loc,
                   Subtype_Mark =>
-                    New_Reference_To
+                    New_Occurrence_Of
                       (RTE (RE_Static_Interrupt_Protection), Loc),
                   Constraint   =>
                     Make_Index_Or_Discriminant_Constraint (Loc,
@@ -9215,7 +9230,7 @@ package body Exp_Ch9 is
                Protection_Subtype :=
                  Make_Subtype_Indication (Loc,
                    Subtype_Mark =>
-                     New_Reference_To
+                     New_Occurrence_Of
                        (RTE (RE_Dynamic_Interrupt_Protection), Loc),
                    Constraint   =>
                      Make_Index_Or_Discriminant_Constraint (Loc,
@@ -9227,7 +9242,7 @@ package body Exp_Ch9 is
                      Protection_Subtype :=
                         Make_Subtype_Indication (Loc,
                           Subtype_Mark =>
-                            New_Reference_To
+                            New_Occurrence_Of
                               (RTE (RE_Protection_Entries), Loc),
                           Constraint   =>
                             Make_Index_Or_Discriminant_Constraint (Loc,
@@ -9235,11 +9250,11 @@ package body Exp_Ch9 is
 
                   when System_Tasking_Protected_Objects_Single_Entry =>
                      Protection_Subtype :=
-                       New_Reference_To (RTE (RE_Protection_Entry), Loc);
+                       New_Occurrence_Of (RTE (RE_Protection_Entry), Loc);
 
                   when System_Tasking_Protected_Objects =>
                      Protection_Subtype :=
-                       New_Reference_To (RTE (RE_Protection), Loc);
+                       New_Occurrence_Of (RTE (RE_Protection), Loc);
 
                   when others =>
                      raise Program_Error;
@@ -9403,7 +9418,7 @@ package body Exp_Ch9 is
                  Aliased_Present => True,
                  Object_Definition =>
                    Make_Subtype_Indication (Loc,
-                     Subtype_Mark => New_Reference_To (
+                     Subtype_Mark => New_Occurrence_Of (
                        RTE (RE_Protected_Entry_Body_Array), Loc),
                      Constraint =>
                        Make_Index_Or_Discriminant_Constraint (Loc,
@@ -9417,7 +9432,7 @@ package body Exp_Ch9 is
                Body_Arr := Make_Object_Declaration (Loc,
                  Defining_Identifier => Body_Id,
                  Aliased_Present => True,
-                 Object_Definition => New_Reference_To
+                 Object_Definition => New_Occurrence_Of
                                         (RTE (RE_Entry_Body), Loc),
                  Expression => Remove_Head (Expressions (Entries_Aggr)));
 
@@ -9747,7 +9762,7 @@ package body Exp_Ch9 is
          --  Process the "with abort" parameter
 
          Prepend_To (Params,
-           New_Reference_To (Boolean_Literals (Abort_Present (N)), Loc));
+           New_Occurrence_Of (Boolean_Literals (Abort_Present (N)), Loc));
 
          --  Process the entry wrapper's position in the primary dispatch
          --  table parameter. Generate:
@@ -9765,7 +9780,7 @@ package body Exp_Ch9 is
          if Tagged_Type_Expansion then
             Prepend_To (Params,
               Make_Function_Call (Loc,
-                Name => New_Reference_To (RTE (RE_Get_Entry_Index), Loc),
+                Name => New_Occurrence_Of (RTE (RE_Get_Entry_Index), Loc),
                 Parameter_Associations => New_List (
 
                   Make_Explicit_Dereference (Loc,
@@ -9775,7 +9790,7 @@ package body Exp_Ch9 is
                         Attribute_Name => Name_Address))),
 
                   Make_Function_Call (Loc,
-                    Name => New_Reference_To (RTE (RE_Get_Offset_Index), Loc),
+                    Name => New_Occurrence_Of (RTE (RE_Get_Offset_Index), Loc),
                     Parameter_Associations => New_List (
                       Unchecked_Convert_To (RTE (RE_Tag), Concval),
                       Make_Integer_Literal (Loc,
@@ -9786,7 +9801,7 @@ package body Exp_Ch9 is
          else
             Prepend_To (Params,
               Make_Function_Call (Loc,
-                Name => New_Reference_To (RTE (RE_Get_Entry_Index), Loc),
+                Name => New_Occurrence_Of (RTE (RE_Get_Entry_Index), Loc),
                 Parameter_Associations => New_List (
 
                   Make_Attribute_Reference (Loc,
@@ -9794,7 +9809,7 @@ package body Exp_Ch9 is
                     Attribute_Name => Name_Tag),
 
                   Make_Function_Call (Loc,
-                    Name => New_Reference_To (RTE (RE_Get_Offset_Index), Loc),
+                    Name => New_Occurrence_Of (RTE (RE_Get_Offset_Index), Loc),
 
                     Parameter_Associations => New_List (
 
@@ -9807,7 +9822,7 @@ package body Exp_Ch9 is
                       --  Tag_Typ
 
                       Make_Attribute_Reference (Loc,
-                        Prefix => New_Reference_To (Etype (Concval), Loc),
+                        Prefix => New_Occurrence_Of (Etype (Concval), Loc),
                         Attribute_Name => Name_Tag),
 
                       --  Position
@@ -9826,7 +9841,7 @@ package body Exp_Ch9 is
                 Attribute_Name => Name_Address));
 
             Prepend_To (Params,                     --  True
-              New_Reference_To (Standard_True, Loc));
+              New_Occurrence_Of (Standard_True, Loc));
 
          --  Specific actuals for task to XXX requeue
 
@@ -9834,10 +9849,10 @@ package body Exp_Ch9 is
             pragma Assert (Is_Task_Type (Old_Typ));
 
             Prepend_To (Params,                     --  null
-              New_Reference_To (RTE (RE_Null_Address), Loc));
+              New_Occurrence_Of (RTE (RE_Null_Address), Loc));
 
             Prepend_To (Params,                     --  False
-              New_Reference_To (Standard_False, Loc));
+              New_Occurrence_Of (Standard_False, Loc));
          end if;
 
          --  Add the object parameter
@@ -9908,14 +9923,14 @@ package body Exp_Ch9 is
          Append_To (Stmts,
            Make_Procedure_Call_Statement (Loc,
              Name =>
-               New_Reference_To (
+               New_Occurrence_Of (
                  Find_Prim_Op (Etype (Etype (Obj)),
                    Name_uDisp_Get_Prim_Op_Kind),
                  Loc),
              Parameter_Associations => New_List (
                New_Copy_Tree (Obj),
-               New_Reference_To (S, Loc),
-               New_Reference_To (C, Loc))));
+               New_Occurrence_Of (S, Loc),
+               New_Occurrence_Of (C, Loc))));
 
          Append_To (Stmts,
 
@@ -9929,16 +9944,16 @@ package body Exp_Ch9 is
                  Left_Opnd =>
                    Make_Op_Eq (Loc,
                      Left_Opnd =>
-                       New_Reference_To (C, Loc),
+                       New_Occurrence_Of (C, Loc),
                      Right_Opnd =>
-                       New_Reference_To (RTE (RE_POK_Protected_Entry), Loc)),
+                       New_Occurrence_Of (RTE (RE_POK_Protected_Entry), Loc)),
 
                  Right_Opnd =>
                    Make_Op_Eq (Loc,
                      Left_Opnd =>
-                       New_Reference_To (C, Loc),
+                       New_Occurrence_Of (C, Loc),
                      Right_Opnd =>
-                       New_Reference_To (RTE (RE_POK_Task_Entry), Loc))),
+                       New_Occurrence_Of (RTE (RE_POK_Task_Entry), Loc))),
 
                --  Dispatching requeue equivalent
 
@@ -9953,9 +9968,9 @@ package body Exp_Ch9 is
                  Condition =>
                    Make_Op_Eq (Loc,
                      Left_Opnd =>
-                       New_Reference_To (C, Loc),
+                       New_Occurrence_Of (C, Loc),
                      Right_Opnd =>
-                       New_Reference_To (
+                       New_Occurrence_Of (
                          RTE (RE_POK_Protected_Procedure), Loc)),
 
                   --  Dispatching call equivalent
@@ -9994,7 +10009,7 @@ package body Exp_Ch9 is
          --  Process the "with abort" parameter
 
          Prepend_To (Params,
-           New_Reference_To (Boolean_Literals (Abort_Present (N)), Loc));
+           New_Occurrence_Of (Boolean_Literals (Abort_Present (N)), Loc));
 
          --  Add the index expression to the parameters. It is common among all
          --  four cases.
@@ -10018,7 +10033,7 @@ package body Exp_Ch9 is
 
                if Is_Protected_Type (Conc_Typ) then
                   RT_Call :=
-                    New_Reference_To (
+                    New_Occurrence_Of (
                       RTE (RE_Requeue_Protected_Entry), Loc);
 
                   Param :=
@@ -10032,7 +10047,7 @@ package body Exp_Ch9 is
 
                else pragma Assert (Is_Task_Type (Conc_Typ));
                   RT_Call :=
-                    New_Reference_To (
+                    New_Occurrence_Of (
                       RTE (RE_Requeue_Protected_To_Task_Entry), Loc);
 
                   Param := Concurrent_Ref (Concval);
@@ -10048,7 +10063,7 @@ package body Exp_Ch9 is
 
             if Is_Protected_Type (Conc_Typ) then
                RT_Call :=
-                 New_Reference_To (
+                 New_Occurrence_Of (
                    RTE (RE_Requeue_Task_To_Protected_Entry), Loc);
 
                Param :=
@@ -10062,7 +10077,7 @@ package body Exp_Ch9 is
 
             else pragma Assert (Is_Task_Type (Conc_Typ));
                RT_Call :=
-                 New_Reference_To (RTE (RE_Requeue_Task_Entry), Loc);
+                 New_Occurrence_Of (RTE (RE_Requeue_Task_Entry), Loc);
 
                Param := Concurrent_Ref (Concval);
             end if;
@@ -10350,11 +10365,11 @@ package body Exp_Ch9 is
              Make_Selected_Component (Loc,
                Prefix        =>
                  Make_Indexed_Component (Loc,
-                   Prefix => New_Reference_To (Qnam, Loc),
-                     Expressions => New_List (New_Reference_To (J, Loc))),
+                   Prefix => New_Occurrence_Of (Qnam, Loc),
+                     Expressions => New_List (New_Occurrence_Of (J, Loc))),
                Selector_Name => Make_Identifier (Loc, Name_S)),
            Right_Opnd =>
-             New_Reference_To (RTE (RE_Null_Task_Entry), Loc));
+             New_Occurrence_Of (RTE (RE_Null_Task_Entry), Loc));
 
          Stats := New_List (
            Make_Implicit_Loop_Statement (N,
@@ -10365,7 +10380,7 @@ package body Exp_Ch9 is
                      Defining_Identifier         => J,
                      Discrete_Subtype_Definition =>
                        Make_Attribute_Reference (Loc,
-                         Prefix         => New_Reference_To (Qnam, Loc),
+                         Prefix         => New_Occurrence_Of (Qnam, Loc),
                          Attribute_Name => Name_Range,
                          Expressions    => New_List (
                            Make_Integer_Literal (Loc, 1))))),
@@ -10375,15 +10390,15 @@ package body Exp_Ch9 is
                  Condition       =>  Cond,
                  Then_Statements => New_List (
                    Make_Select_Call (
-                     New_Reference_To (RTE (RE_Simple_Mode), Loc)),
+                     New_Occurrence_Of (RTE (RE_Simple_Mode), Loc)),
                    Make_Exit_Statement (Loc))))));
 
          Append_To (Stats,
            Make_Raise_Program_Error (Loc,
              Condition => Make_Op_Eq (Loc,
-               Left_Opnd  => New_Reference_To (Xnam, Loc),
+               Left_Opnd  => New_Occurrence_Of (Xnam, Loc),
                Right_Opnd =>
-                 New_Reference_To (RTE (RE_No_Rendezvous), Loc)),
+                 New_Occurrence_Of (RTE (RE_No_Rendezvous), Loc)),
              Reason => PE_All_Guards_Closed));
 
          return Stats;
@@ -10415,7 +10430,7 @@ package body Exp_Ch9 is
               Make_If_Expression (Eloc, New_List (
                 Condition (Alt),
                 Entry_Index_Expression (Eloc, Eent, Index, Scope (Eent)),
-                New_Reference_To (RTE (RE_Null_Task_Entry), Eloc)));
+                New_Occurrence_Of (RTE (RE_Null_Task_Entry), Eloc)));
          else
             Expr :=
               Entry_Index_Expression
@@ -10423,7 +10438,7 @@ package body Exp_Ch9 is
          end if;
 
          if Present (Handled_Statement_Sequence (Accept_Statement (Alt))) then
-            Null_Body := New_Reference_To (Standard_False, Eloc);
+            Null_Body := New_Occurrence_Of (Standard_False, Eloc);
 
             --  Always add call to Abort_Undefer when generating code, since
             --  this is what the runtime expects (abort deferred in
@@ -10433,7 +10448,7 @@ package body Exp_Ch9 is
             if not CodePeer_Mode then
                Call :=
                  Make_Procedure_Call_Statement (Eloc,
-                   Name => New_Reference_To (RTE (RE_Abort_Undefer), Eloc));
+                   Name => New_Occurrence_Of (RTE (RE_Abort_Undefer), Eloc));
                Insert_Before
                  (First (Statements (Handled_Statement_Sequence
                                        (Accept_Statement (Alt)))),
@@ -10468,7 +10483,7 @@ package body Exp_Ch9 is
             Append (Proc_Body, Body_List);
 
          else
-            Null_Body := New_Reference_To (Standard_True,  Eloc);
+            Null_Body := New_Occurrence_Of (Standard_True,  Eloc);
 
             --  if accept statement has declarations, insert above, given that
             --  we are not creating a body for the accept.
@@ -10515,16 +10530,16 @@ package body Exp_Ch9 is
       begin
          Append (
            Make_Attribute_Reference (Loc,
-             Prefix         => New_Reference_To (Qnam, Loc),
+             Prefix         => New_Occurrence_Of (Qnam, Loc),
              Attribute_Name => Name_Unchecked_Access),
            Params);
          Append (Select_Mode,                  Params);
-         Append (New_Reference_To (Ann, Loc),  Params);
-         Append (New_Reference_To (Xnam, Loc), Params);
+         Append (New_Occurrence_Of (Ann, Loc),  Params);
+         Append (New_Occurrence_Of (Xnam, Loc), Params);
 
          return
            Make_Procedure_Call_Statement (Loc,
-             Name => New_Reference_To (RTE (RE_Selective_Wait), Loc),
+             Name => New_Occurrence_Of (RTE (RE_Selective_Wait), Loc),
              Parameter_Associations => Params);
       end Make_Select_Call;
 
@@ -10550,7 +10565,7 @@ package body Exp_Ch9 is
               New_List (
                 Make_Procedure_Call_Statement (Sloc (Proc),
                   Name =>
-                    New_Reference_To
+                    New_Occurrence_Of
                       (Defining_Unit_Name (Specification (Proc)),
                        Sloc (Proc))));
 
@@ -10621,27 +10636,27 @@ package body Exp_Ch9 is
 
             Delay_Alt := New_List (
               Make_Assignment_Statement (Loc,
-                Name       => New_Reference_To (Delay_Min, Loc),
+                Name       => New_Occurrence_Of (Delay_Min, Loc),
                 Expression => Expression (Delay_Statement (Alt))));
 
             if Delay_Count > 1 then
                Append_To (Delay_Alt,
                  Make_Assignment_Statement (Loc,
-                   Name       => New_Reference_To (Delay_Index, Loc),
+                   Name       => New_Occurrence_Of (Delay_Index, Loc),
                    Expression => Make_Integer_Literal (Loc, Index)));
             end if;
 
          else
             Delay_Alt := New_List (
               Make_Assignment_Statement (Loc,
-                Name       => New_Reference_To (Delay_Val, Loc),
+                Name       => New_Occurrence_Of (Delay_Val, Loc),
                 Expression => Expression (Delay_Statement (Alt))));
 
             if Time_Type = Standard_Duration then
                Cond :=
                   Make_Op_Lt (Loc,
-                    Left_Opnd  => New_Reference_To (Delay_Val, Loc),
-                    Right_Opnd => New_Reference_To (Delay_Min, Loc));
+                    Left_Opnd  => New_Occurrence_Of (Delay_Val, Loc),
+                    Right_Opnd => New_Occurrence_Of (Delay_Min, Loc));
 
             else
                --  The scope of the time type must define a comparison
@@ -10653,15 +10668,15 @@ package body Exp_Ch9 is
                  Make_Function_Call (Loc,
                    Name => Make_Selected_Component (Loc,
                      Prefix        =>
-                       New_Reference_To (Scope (Time_Type), Loc),
+                       New_Occurrence_Of (Scope (Time_Type), Loc),
                      Selector_Name =>
                        Make_Operator_Symbol (Loc,
                          Chars  => Name_Op_Lt,
                          Strval => No_String)),
                     Parameter_Associations =>
                       New_List (
-                        New_Reference_To (Delay_Val, Loc),
-                        New_Reference_To (Delay_Min, Loc)));
+                        New_Occurrence_Of (Delay_Val, Loc),
+                        New_Occurrence_Of (Delay_Min, Loc)));
 
                Set_Entity (Prefix (Name (Cond)), Scope (Time_Type));
             end if;
@@ -10671,19 +10686,19 @@ package body Exp_Ch9 is
                 Condition => Cond,
                 Then_Statements => New_List (
                   Make_Assignment_Statement (Loc,
-                    Name       => New_Reference_To (Delay_Min, Loc),
-                    Expression => New_Reference_To (Delay_Val, Loc)),
+                    Name       => New_Occurrence_Of (Delay_Min, Loc),
+                    Expression => New_Occurrence_Of (Delay_Val, Loc)),
 
                   Make_Assignment_Statement (Loc,
-                    Name       => New_Reference_To (Delay_Index, Loc),
+                    Name       => New_Occurrence_Of (Delay_Index, Loc),
                     Expression => Make_Integer_Literal (Loc, Index)))));
          end if;
 
          if Check_Guard then
             Append_To (Delay_Alt,
               Make_Assignment_Statement (Loc,
-                Name       => New_Reference_To (Guard_Open, Loc),
-                Expression => New_Reference_To (Standard_True, Loc)));
+                Name       => New_Occurrence_Of (Guard_Open, Loc),
+                Expression => New_Occurrence_Of (Standard_True, Loc)));
          end if;
 
          if Present (Condition (Alt)) then
@@ -10818,12 +10833,12 @@ package body Exp_Ch9 is
       Append_To (Decls,
         Make_Object_Declaration (Loc,
           Defining_Identifier => Qnam,
-          Object_Definition   => New_Reference_To (RTE (RE_Accept_List), Loc),
+          Object_Definition   => New_Occurrence_Of (RTE (RE_Accept_List), Loc),
           Aliased_Present     => True,
           Expression          =>
              Make_Qualified_Expression (Loc,
                Subtype_Mark =>
-                 New_Reference_To (RTE (RE_Accept_List), Loc),
+                 New_Occurrence_Of (RTE (RE_Accept_List), Loc),
                Expression   =>
                  Make_Aggregate (Loc, Expressions => Accept_List))));
 
@@ -10836,9 +10851,9 @@ package body Exp_Ch9 is
         Make_Object_Declaration (Loc,
           Defining_Identifier => Xnam,
           Object_Definition =>
-            New_Reference_To (RTE (RE_Select_Index), Loc),
+            New_Occurrence_Of (RTE (RE_Select_Index), Loc),
           Expression =>
-            New_Reference_To (RTE (RE_No_Rendezvous), Loc)));
+            New_Occurrence_Of (RTE (RE_No_Rendezvous), Loc)));
 
       --  After this follow procedure declarations for each accept body
 
@@ -10893,18 +10908,18 @@ package body Exp_Ch9 is
          Append_To (Decls,
            Make_Object_Declaration (Loc,
              Defining_Identifier => Delay_Val,
-             Object_Definition   => New_Reference_To (Time_Type, Loc)));
+             Object_Definition   => New_Occurrence_Of (Time_Type, Loc)));
 
          Append_To (Decls,
            Make_Object_Declaration (Loc,
              Defining_Identifier => Delay_Index,
-             Object_Definition   => New_Reference_To (Standard_Integer, Loc),
+             Object_Definition   => New_Occurrence_Of (Standard_Integer, Loc),
              Expression          => Make_Integer_Literal (Loc, 0)));
 
          Append_To (Decls,
            Make_Object_Declaration (Loc,
              Defining_Identifier => Delay_Min,
-             Object_Definition   => New_Reference_To (Time_Type, Loc),
+             Object_Definition   => New_Occurrence_Of (Time_Type, Loc),
              Expression          =>
                Unchecked_Convert_To (Time_Type,
                  Make_Attribute_Reference (Loc,
@@ -10945,13 +10960,13 @@ package body Exp_Ch9 is
               Make_Object_Declaration (Loc,
                 Defining_Identifier => D,
                 Object_Definition   =>
-                  New_Reference_To (Standard_Duration, Loc)));
+                  New_Occurrence_Of (Standard_Duration, Loc)));
 
             Append_To (Decls,
               Make_Object_Declaration (Loc,
                 Defining_Identifier => M,
                 Object_Definition   =>
-                  New_Reference_To (Standard_Integer, Loc),
+                  New_Occurrence_Of (Standard_Integer, Loc),
                 Expression          => Discr));
          end;
 
@@ -10962,8 +10977,10 @@ package body Exp_Ch9 is
             Append_To (Decls,
               Make_Object_Declaration (Loc,
                  Defining_Identifier => Guard_Open,
-                 Object_Definition => New_Reference_To (Standard_Boolean, Loc),
-                 Expression        => New_Reference_To (Standard_False, Loc)));
+                 Object_Definition   =>
+                   New_Occurrence_Of (Standard_Boolean, Loc),
+                 Expression          =>
+                   New_Occurrence_Of (Standard_False, Loc)));
          end if;
 
       --  Delay_Count is zero, don't need M and D set (suppress warning)
@@ -10981,17 +10998,17 @@ package body Exp_Ch9 is
          if Present (Condition (Terminate_Alt)) then
             Select_Mode := Make_If_Expression (Loc,
               New_List (Condition (Terminate_Alt),
-                        New_Reference_To (RTE (RE_Terminate_Mode), Loc),
-                        New_Reference_To (RTE (RE_Simple_Mode), Loc)));
+                        New_Occurrence_Of (RTE (RE_Terminate_Mode), Loc),
+                        New_Occurrence_Of (RTE (RE_Simple_Mode), Loc)));
          else
-            Select_Mode := New_Reference_To (RTE (RE_Terminate_Mode), Loc);
+            Select_Mode := New_Occurrence_Of (RTE (RE_Terminate_Mode), Loc);
          end if;
 
       elsif Else_Present or Delay_Count > 0 then
-         Select_Mode := New_Reference_To (RTE (RE_Else_Mode), Loc);
+         Select_Mode := New_Occurrence_Of (RTE (RE_Else_Mode), Loc);
 
       else
-         Select_Mode := New_Reference_To (RTE (RE_Simple_Mode), Loc);
+         Select_Mode := New_Occurrence_Of (RTE (RE_Simple_Mode), Loc);
       end if;
 
       Select_Call := Make_Select_Call (Select_Mode);
@@ -11035,7 +11052,7 @@ package body Exp_Ch9 is
 
       --  First entry is the default case, when no rendezvous is possible
 
-      Choices := New_List (New_Reference_To (RTE (RE_No_Rendezvous), Loc));
+      Choices := New_List (New_Occurrence_Of (RTE (RE_No_Rendezvous), Loc));
 
       if Else_Present then
 
@@ -11101,7 +11118,7 @@ package body Exp_Ch9 is
 
       Accept_Case := New_List (
         Make_Case_Statement (Loc,
-          Expression   => New_Reference_To (Xnam, Loc),
+          Expression   => New_Occurrence_Of (Xnam, Loc),
           Alternatives => Alt_List));
 
       Append_List (Trailing_List, Accept_Case);
@@ -11120,7 +11137,7 @@ package body Exp_Ch9 is
 
          Delay_Case := New_List (
            Make_Case_Statement (Loc,
-             Expression   => New_Reference_To (Delay_Index, Loc),
+             Expression   => New_Occurrence_Of (Delay_Index, Loc),
              Alternatives => Delay_Alt_List));
       else
          Delay_Case := Delay_Alt_List;
@@ -11160,24 +11177,24 @@ package body Exp_Ch9 is
             --  The type of the delay expression is known to be legal
 
             if Time_Type = Standard_Duration then
-               Conv := New_Reference_To (Delay_Min, Loc);
+               Conv := New_Occurrence_Of (Delay_Min, Loc);
 
             elsif Is_RTE (Base_Type (Etype (Time_Type)), RO_CA_Time) then
                Conv := Make_Function_Call (Loc,
-                 New_Reference_To (RTE (RO_CA_To_Duration), Loc),
-                 New_List (New_Reference_To (Delay_Min, Loc)));
+                 New_Occurrence_Of (RTE (RO_CA_To_Duration), Loc),
+                 New_List (New_Occurrence_Of (Delay_Min, Loc)));
 
             else
                pragma Assert
                  (Is_RTE (Base_Type (Etype (Time_Type)), RO_RT_Time));
 
                Conv := Make_Function_Call (Loc,
-                 New_Reference_To (RTE (RO_RT_To_Duration), Loc),
-                 New_List (New_Reference_To (Delay_Min, Loc)));
+                 New_Occurrence_Of (RTE (RO_RT_To_Duration), Loc),
+                 New_List (New_Occurrence_Of (Delay_Min, Loc)));
             end if;
 
             Stmt := Make_Assignment_Statement (Loc,
-              Name       => New_Reference_To (D, Loc),
+              Name       => New_Occurrence_Of (D, Loc),
               Expression => Conv);
 
             --  Change the value for Accept_Modes. (Else_Mode -> Delay_Mode)
@@ -11190,21 +11207,21 @@ package body Exp_Ch9 is
             end loop;
 
             pragma Assert (Present (Parm));
-            Rewrite (Parm, New_Reference_To (RTE (RE_Delay_Mode), Loc));
+            Rewrite (Parm, New_Occurrence_Of (RTE (RE_Delay_Mode), Loc));
             Analyze (Parm);
 
             --  Prepare two new parameters of Duration and Delay_Mode type
             --  which represent the value and the mode of the minimum delay.
 
             Next (Parm);
-            Insert_After (Parm, New_Reference_To (M, Loc));
-            Insert_After (Parm, New_Reference_To (D, Loc));
+            Insert_After (Parm, New_Occurrence_Of (M, Loc));
+            Insert_After (Parm, New_Occurrence_Of (D, Loc));
 
             --  Create a call to RTS
 
             Rewrite (Select_Call,
               Make_Procedure_Call_Statement (Loc,
-                Name => New_Reference_To (RTE (RE_Timed_Selective_Wait), Loc),
+                Name => New_Occurrence_Of (RTE (RE_Timed_Selective_Wait), Loc),
                 Parameter_Associations => Parms));
 
             --  This new call should follow the calculation of the minimum
@@ -11215,7 +11232,7 @@ package body Exp_Ch9 is
             if Check_Guard then
                Stmt :=
                  Make_Implicit_If_Statement (N,
-                   Condition       => New_Reference_To (Guard_Open, Loc),
+                   Condition       => New_Occurrence_Of (Guard_Open, Loc),
                    Then_Statements => New_List (
                      New_Copy_Tree (Stmt),
                      New_Copy_Tree (Select_Call)),
@@ -11228,9 +11245,9 @@ package body Exp_Ch9 is
             Cases :=
               Make_Implicit_If_Statement (N,
                 Condition => Make_Op_Eq (Loc,
-                  Left_Opnd  => New_Reference_To (Xnam, Loc),
+                  Left_Opnd  => New_Occurrence_Of (Xnam, Loc),
                   Right_Opnd =>
-                    New_Reference_To (RTE (RE_No_Rendezvous), Loc)),
+                    New_Occurrence_Of (RTE (RE_No_Rendezvous), Loc)),
 
                 Then_Statements => Delay_Case,
                 Else_Statements => Accept_Case);
@@ -11408,7 +11425,7 @@ package body Exp_Ch9 is
            Make_Assignment_Statement (Loc,
              Name =>
                Make_Identifier (Loc, New_External_Name (Chars (Ttyp), 'E')),
-             Expression => New_Reference_To (Standard_True, Loc)));
+             Expression => New_Occurrence_Of (Standard_True, Loc)));
       end if;
 
       --  Ada 2005 (AI-345): Construct the primitive entry wrapper bodies after
@@ -11633,8 +11650,8 @@ package body Exp_Ch9 is
             Make_Defining_Identifier (Sloc (Tasktyp),
               Chars => New_External_Name (Tasknm, 'E')),
           Aliased_Present      => True,
-          Object_Definition    => New_Reference_To (Standard_Boolean, Loc),
-          Expression           => New_Reference_To (Standard_False, Loc));
+          Object_Definition    => New_Occurrence_Of (Standard_Boolean, Loc),
+          Expression           => New_Occurrence_Of (Standard_False, Loc));
 
       Insert_After (N, Elab_Decl);
 
@@ -11655,7 +11672,8 @@ package body Exp_Ch9 is
          Size_Decl :=
            Make_Object_Declaration (Loc,
              Defining_Identifier => Storage_Size_Variable (Tasktyp),
-             Object_Definition   => New_Reference_To (RTE (RE_Size_Type), Loc),
+             Object_Definition   =>
+               New_Occurrence_Of (RTE (RE_Size_Type), Loc),
              Expression          =>
                Convert_To (RTE (RE_Size_Type),
                  Relocate_Node
@@ -11668,9 +11686,9 @@ package body Exp_Ch9 is
            Make_Object_Declaration (Loc,
              Defining_Identifier => Storage_Size_Variable (Tasktyp),
              Object_Definition   =>
-               New_Reference_To (RTE (RE_Size_Type), Loc),
+               New_Occurrence_Of (RTE (RE_Size_Type), Loc),
              Expression          =>
-               New_Reference_To (RTE (RE_Unspecified_Size), Loc));
+               New_Occurrence_Of (RTE (RE_Unspecified_Size), Loc));
       end if;
 
       Insert_After (Elab_Decl, Size_Decl);
@@ -11688,7 +11706,7 @@ package body Exp_Ch9 is
           Component_Definition =>
             Make_Component_Definition (Loc,
               Aliased_Present    => False,
-              Subtype_Indication => New_Reference_To (RTE (RO_ST_Task_Id),
+              Subtype_Indication => New_Occurrence_Of (RTE (RO_ST_Task_Id),
                                     Loc))));
 
       --  Declare static ATCB (that is, created by the expander) if we are
@@ -11743,7 +11761,7 @@ package body Exp_Ch9 is
                  and then Present (Discriminal_Link (Entity (Expr_N)))
                then
                   Task_Size :=
-                    New_Reference_To
+                    New_Occurrence_Of
                       (CR_Discriminant (Discriminal_Link (Entity (Expr_N))),
                        Loc);
                   Set_Parent   (Task_Size, P);
@@ -11757,7 +11775,7 @@ package body Exp_Ch9 is
 
          else
             Task_Size :=
-              New_Reference_To (RTE (RE_Default_Stack_Size), Loc);
+              New_Occurrence_Of (RTE (RE_Default_Stack_Size), Loc);
          end if;
 
          Decl_Stack := Make_Component_Declaration (Loc,
@@ -11800,7 +11818,7 @@ package body Exp_Ch9 is
                Make_Component_Definition (Loc,
                  Aliased_Present    => False,
                  Subtype_Indication =>
-                   New_Reference_To (Standard_Integer, Loc))));
+                   New_Occurrence_Of (Standard_Integer, Loc))));
       end if;
 
       --  Add the _Size component if a Storage_Size pragma is present
@@ -11817,7 +11835,7 @@ package body Exp_Ch9 is
                Make_Component_Definition (Loc,
                  Aliased_Present    => False,
                  Subtype_Indication =>
-                   New_Reference_To (RTE (RE_Size_Type), Loc)),
+                   New_Occurrence_Of (RTE (RE_Size_Type), Loc)),
 
              Expression =>
                Convert_To (RTE (RE_Size_Type),
@@ -11839,7 +11857,7 @@ package body Exp_Ch9 is
                Make_Component_Definition (Loc,
                  Aliased_Present    => False,
                  Subtype_Indication =>
-                   New_Reference_To (RTE (RE_Task_Info_Type), Loc)),
+                   New_Occurrence_Of (RTE (RE_Task_Info_Type), Loc)),
 
              Expression => New_Copy (
                Expression (First (
@@ -11860,7 +11878,7 @@ package body Exp_Ch9 is
                Make_Component_Definition (Loc,
                  Aliased_Present    => False,
                  Subtype_Indication =>
-                   New_Reference_To (RTE (RE_CPU_Range), Loc))));
+                   New_Occurrence_Of (RTE (RE_CPU_Range), Loc))));
       end if;
 
       --  Add the _Relative_Deadline component if a Relative_Deadline pragma is
@@ -11880,7 +11898,7 @@ package body Exp_Ch9 is
                Make_Component_Definition (Loc,
                  Aliased_Present    => False,
                  Subtype_Indication =>
-                   New_Reference_To (RTE (RE_Time_Span), Loc)),
+                   New_Occurrence_Of (RTE (RE_Time_Span), Loc)),
 
              Expression =>
                Convert_To (RTE (RE_Time_Span),
@@ -11909,7 +11927,7 @@ package body Exp_Ch9 is
                Make_Component_Definition (Loc,
                  Aliased_Present    => False,
                  Subtype_Indication =>
-                   New_Reference_To
+                   New_Occurrence_Of
                      (RTE (RE_Dispatching_Domain_Access), Loc))));
       end if;
 
@@ -12224,7 +12242,8 @@ package body Exp_Ch9 is
          Prepend_To (Decls,
            Make_Object_Declaration (Loc,
              Defining_Identifier => B,
-             Object_Definition   => New_Reference_To (Standard_Boolean, Loc)));
+             Object_Definition   =>
+               New_Occurrence_Of (Standard_Boolean, Loc)));
       end if;
 
       --  Duration and mode processing
@@ -12242,7 +12261,7 @@ package body Exp_Ch9 is
          D_Disc := Make_Integer_Literal (Loc, 1);
          D_Conv :=
            Make_Function_Call (Loc,
-             Name => New_Reference_To (RTE (RO_CA_To_Duration), Loc),
+             Name => New_Occurrence_Of (RTE (RO_CA_To_Duration), Loc),
              Parameter_Associations =>
                New_List (New_Copy (Expression (D_Stat))));
 
@@ -12250,7 +12269,7 @@ package body Exp_Ch9 is
          D_Disc := Make_Integer_Literal (Loc, 2);
          D_Conv :=
            Make_Function_Call (Loc,
-             Name => New_Reference_To (RTE (RO_RT_To_Duration), Loc),
+             Name => New_Occurrence_Of (RTE (RO_RT_To_Duration), Loc),
              Parameter_Associations =>
                New_List (New_Copy (Expression (D_Stat))));
       end if;
@@ -12263,7 +12282,7 @@ package body Exp_Ch9 is
       Append_To (Decls,
         Make_Object_Declaration (Loc,
           Defining_Identifier => D,
-          Object_Definition   => New_Reference_To (Standard_Duration, Loc)));
+          Object_Definition   => New_Occurrence_Of (Standard_Duration, Loc)));
 
       M := Make_Temporary (Loc, 'M');
 
@@ -12273,7 +12292,7 @@ package body Exp_Ch9 is
       Append_To (Decls,
         Make_Object_Declaration (Loc,
           Defining_Identifier => M,
-          Object_Definition   => New_Reference_To (Standard_Integer, Loc),
+          Object_Definition   => New_Occurrence_Of (Standard_Integer, Loc),
           Expression          => D_Disc));
 
       --  Do the assignment at this stage only because the evaluation of the
@@ -12281,7 +12300,7 @@ package body Exp_Ch9 is
 
       Append_To (Stmts,
         Make_Assignment_Statement (Loc,
-          Name       => New_Reference_To (D, Loc),
+          Name       => New_Occurrence_Of (D, Loc),
           Expression => D_Conv));
 
       --  Parameter block processing
@@ -12325,20 +12344,20 @@ package body Exp_Ch9 is
          Params := New_List;
 
          Append_To (Params, New_Copy_Tree (Obj));
-         Append_To (Params, New_Reference_To (S, Loc));
+         Append_To (Params, New_Occurrence_Of (S, Loc));
          Append_To (Params,
            Make_Attribute_Reference (Loc,
-             Prefix         => New_Reference_To (P, Loc),
+             Prefix         => New_Occurrence_Of (P, Loc),
              Attribute_Name => Name_Address));
-         Append_To (Params, New_Reference_To (D, Loc));
-         Append_To (Params, New_Reference_To (M, Loc));
-         Append_To (Params, New_Reference_To (C, Loc));
-         Append_To (Params, New_Reference_To (B, Loc));
+         Append_To (Params, New_Occurrence_Of (D, Loc));
+         Append_To (Params, New_Occurrence_Of (M, Loc));
+         Append_To (Params, New_Occurrence_Of (C, Loc));
+         Append_To (Params, New_Occurrence_Of (B, Loc));
 
          Append_To (Conc_Typ_Stmts,
            Make_Procedure_Call_Statement (Loc,
              Name =>
-               New_Reference_To
+               New_Occurrence_Of
                  (Find_Prim_Op
                    (Etype (Etype (Obj)), Name_uDisp_Timed_Select), Loc),
              Parameter_Associations => Params));
@@ -12365,16 +12384,16 @@ package body Exp_Ch9 is
                   Make_Or_Else (Loc,
                     Left_Opnd  =>
                       Make_Op_Eq (Loc,
-                        Left_Opnd => New_Reference_To (C, Loc),
+                        Left_Opnd => New_Occurrence_Of (C, Loc),
                         Right_Opnd =>
-                          New_Reference_To
+                          New_Occurrence_Of
                             (RTE (RE_POK_Protected_Entry), Loc)),
 
                     Right_Opnd =>
                       Make_Op_Eq (Loc,
-                        Left_Opnd  => New_Reference_To (C, Loc),
+                        Left_Opnd  => New_Occurrence_Of (C, Loc),
                         Right_Opnd =>
-                          New_Reference_To (RTE (RE_POK_Task_Entry), Loc))),
+                          New_Occurrence_Of (RTE (RE_POK_Task_Entry), Loc))),
 
                 Then_Statements => Unpack));
          end if;
@@ -12396,30 +12415,30 @@ package body Exp_Ch9 is
                Make_Or_Else (Loc,
                  Left_Opnd =>
                    Make_Op_Eq (Loc,
-                     Left_Opnd  => New_Reference_To (C, Loc),
+                     Left_Opnd  => New_Occurrence_Of (C, Loc),
                      Right_Opnd =>
-                       New_Reference_To (RTE (RE_POK_Procedure), Loc)),
+                       New_Occurrence_Of (RTE (RE_POK_Procedure), Loc)),
 
                  Right_Opnd =>
                    Make_Or_Else (Loc,
                      Left_Opnd =>
                        Make_Op_Eq (Loc,
-                         Left_Opnd  => New_Reference_To (C, Loc),
+                         Left_Opnd  => New_Occurrence_Of (C, Loc),
                          Right_Opnd =>
-                           New_Reference_To (RTE (
+                           New_Occurrence_Of (RTE (
                              RE_POK_Protected_Procedure), Loc)),
                      Right_Opnd =>
                        Make_Op_Eq (Loc,
-                         Left_Opnd  => New_Reference_To (C, Loc),
+                         Left_Opnd  => New_Occurrence_Of (C, Loc),
                          Right_Opnd =>
-                           New_Reference_To
+                           New_Occurrence_Of
                              (RTE (RE_POK_Task_Procedure), Loc)))),
 
              Then_Statements => New_List (E_Call)));
 
          Append_To (Conc_Typ_Stmts,
            Make_Implicit_If_Statement (N,
-             Condition       => New_Reference_To (B, Loc),
+             Condition       => New_Occurrence_Of (B, Loc),
              Then_Statements => N_Stats));
 
          --  Generate:
@@ -12478,7 +12497,7 @@ package body Exp_Ch9 is
 
          Insert_Before (Stmt,
            Make_Assignment_Statement (Loc,
-             Name       => New_Reference_To (D, Loc),
+             Name       => New_Occurrence_Of (D, Loc),
              Expression => D_Conv));
 
          Call   := Stmt;
@@ -12508,20 +12527,20 @@ package body Exp_Ch9 is
             --  finally add Duration and a Delay_Mode parameter
 
             pragma Assert (Present (Param));
-            Rewrite (Param, New_Reference_To (D, Loc));
+            Rewrite (Param, New_Occurrence_Of (D, Loc));
 
-            Rewrite (Dummy, New_Reference_To (M, Loc));
+            Rewrite (Dummy, New_Occurrence_Of (M, Loc));
 
             --  Add a Boolean flag for successful entry call
 
-            Append_To (Params, New_Reference_To (B, Loc));
+            Append_To (Params, New_Occurrence_Of (B, Loc));
 
             case Corresponding_Runtime_Package (Etype (Concval)) is
                when System_Tasking_Protected_Objects_Entries =>
                   Rewrite (Call,
                     Make_Procedure_Call_Statement (Loc,
                       Name =>
-                        New_Reference_To
+                        New_Occurrence_Of
                           (RTE (RE_Timed_Protected_Entry_Call), Loc),
                       Parameter_Associations => Params));
 
@@ -12534,20 +12553,20 @@ package body Exp_Ch9 is
          else
             --  Create a new call statement
 
-            Append_To (Params, New_Reference_To (D, Loc));
-            Append_To (Params, New_Reference_To (M, Loc));
-            Append_To (Params, New_Reference_To (B, Loc));
+            Append_To (Params, New_Occurrence_Of (D, Loc));
+            Append_To (Params, New_Occurrence_Of (M, Loc));
+            Append_To (Params, New_Occurrence_Of (B, Loc));
 
             Rewrite (Call,
               Make_Procedure_Call_Statement (Loc,
                 Name =>
-                  New_Reference_To (RTE (RE_Timed_Task_Entry_Call), Loc),
+                  New_Occurrence_Of (RTE (RE_Timed_Task_Entry_Call), Loc),
                 Parameter_Associations => Params));
          end if;
 
          Append_To (Stmts,
            Make_Implicit_If_Statement (N,
-             Condition       => New_Reference_To (B, Loc),
+             Condition       => New_Occurrence_Of (B, Loc),
              Then_Statements => E_Stats,
              Else_Statements => D_Stats));
       end if;
@@ -12751,10 +12770,10 @@ package body Exp_Ch9 is
                   Next_Discriminant (D);
                end loop;
 
-               B := New_Reference_To  (Discriminal (D), Loc);
+               B := New_Occurrence_Of  (Discriminal (D), Loc);
 
             else
-               B := New_Reference_To (Discriminal (Entity (Bound)), Loc);
+               B := New_Occurrence_Of (Discriminal (Entity (Bound)), Loc);
             end if;
 
          elsif Nkind (Bound) = N_Attribute_Reference then
@@ -12786,7 +12805,7 @@ package body Exp_Ch9 is
 
          Real_Hi :=
            Make_Attribute_Reference (Loc,
-             Prefix         => New_Reference_To (Ityp, Loc),
+             Prefix         => New_Occurrence_Of (Ityp, Loc),
              Attribute_Name => Name_Min,
              Expressions    => New_List (
                Real_Hi,
@@ -12794,7 +12813,7 @@ package body Exp_Ch9 is
 
          Real_Lo :=
            Make_Attribute_Reference (Loc,
-             Prefix         => New_Reference_To (Ityp, Loc),
+             Prefix         => New_Occurrence_Of (Ityp, Loc),
              Attribute_Name => Name_Max,
              Expressions    => New_List (
                Real_Lo,
@@ -12826,7 +12845,7 @@ package body Exp_Ch9 is
 
       return
         Make_Attribute_Reference (Loc,
-          Prefix         => New_Reference_To (Ityp, Loc),
+          Prefix         => New_Occurrence_Of (Ityp, Loc),
           Attribute_Name => Name_Max,
           Expressions    => New_List (
             Make_Op_Add (Loc,
@@ -13073,7 +13092,7 @@ package body Exp_Ch9 is
                 Type_Definition     =>
                   Make_Access_To_Object_Definition (Loc,
                     Subtype_Indication =>
-                      New_Reference_To (Conc_Rec, Loc)));
+                      New_Occurrence_Of (Conc_Rec, Loc)));
             Add (Decl);
 
             --  Generate:
@@ -13083,10 +13102,10 @@ package body Exp_Ch9 is
               Make_Object_Declaration (Loc,
                 Defining_Identifier =>
                   Make_Defining_Identifier (Loc, Name_uObject),
-                Object_Definition   => New_Reference_To (Typ_Id, Loc),
+                Object_Definition   => New_Occurrence_Of (Typ_Id, Loc),
                 Expression          =>
                   Unchecked_Convert_To (Typ_Id,
-                    New_Reference_To (Obj_Ent, Loc)));
+                    New_Occurrence_Of (Obj_Ent, Loc)));
             Add (Decl);
 
             --  Set the reference to the concurrent object
@@ -13142,10 +13161,10 @@ package body Exp_Ch9 is
               Make_Object_Renaming_Declaration (Loc,
                 Defining_Identifier => Prot_Ent,
                 Subtype_Mark =>
-                  New_Reference_To (RTE (Prot_Typ), Loc),
+                  New_Occurrence_Of (RTE (Prot_Typ), Loc),
                 Name =>
                   Make_Selected_Component (Loc,
-                    Prefix        => New_Reference_To (Obj_Ent, Loc),
+                    Prefix        => New_Occurrence_Of (Obj_Ent, Loc),
                     Selector_Name => Make_Identifier (Loc, Name_uObject)));
             Add (Decl);
          end;
@@ -13173,10 +13192,10 @@ package body Exp_Ch9 is
                Decl :=
                  Make_Object_Renaming_Declaration (Loc,
                    Defining_Identifier => Discriminal (D),
-                   Subtype_Mark        => New_Reference_To (Etype (D), Loc),
+                   Subtype_Mark        => New_Occurrence_Of (Etype (D), Loc),
                    Name                =>
                      Make_Selected_Component (Loc,
-                       Prefix        => New_Reference_To (Obj_Ent, Loc),
+                       Prefix        => New_Occurrence_Of (Obj_Ent, Loc),
                        Selector_Name => Make_Identifier (Loc, Chars (D))));
                Add (Decl);
 
@@ -13223,11 +13242,11 @@ package body Exp_Ch9 is
                        Make_Object_Renaming_Declaration (Loc,
                          Defining_Identifier => Decl_Id,
                          Subtype_Mark =>
-                           New_Reference_To (Etype (Comp_Id), Loc),
+                           New_Occurrence_Of (Etype (Comp_Id), Loc),
                          Name =>
                            Make_Selected_Component (Loc,
                              Prefix =>
-                               New_Reference_To (Obj_Ent, Loc),
+                               New_Occurrence_Of (Obj_Ent, Loc),
                              Selector_Name =>
                                Make_Identifier (Loc, Chars (Comp_Id))));
                      Add (Decl);
@@ -13294,7 +13313,7 @@ package body Exp_Ch9 is
                    Subtype_Indication =>
                      Make_Subtype_Indication (Loc,
                        Subtype_Mark =>
-                         New_Reference_To (Base_Type (Etype (Index)), Loc),
+                         New_Occurrence_Of (Base_Type (Etype (Index)), Loc),
                        Constraint =>
                          Make_Range_Constraint (Loc,
                            Range_Expression =>
@@ -13317,12 +13336,12 @@ package body Exp_Ch9 is
                 Defining_Identifier => Index_Con,
                 Constant_Present => True,
                 Object_Definition =>
-                  New_Reference_To (Index_Typ, Loc),
+                  New_Occurrence_Of (Index_Typ, Loc),
 
                 Expression =>
                   Make_Attribute_Reference (Loc,
                     Prefix =>
-                      New_Reference_To (Index_Typ, Loc),
+                      New_Occurrence_Of (Index_Typ, Loc),
                     Attribute_Name => Name_Val,
 
                     Expressions => New_List (
@@ -13331,7 +13350,7 @@ package body Exp_Ch9 is
                         Left_Opnd =>
                           Make_Op_Subtract (Loc,
                             Left_Opnd =>
-                              New_Reference_To (E, Loc),
+                              New_Occurrence_Of (E, Loc),
                             Right_Opnd =>
                               Entry_Index_Expression (Loc,
                                 Defining_Identifier (Body_Nod),
@@ -13340,12 +13359,12 @@ package body Exp_Ch9 is
                         Right_Opnd =>
                           Make_Attribute_Reference (Loc,
                             Prefix =>
-                              New_Reference_To (Index_Typ, Loc),
+                              New_Occurrence_Of (Index_Typ, Loc),
                             Attribute_Name => Name_Pos,
                             Expressions => New_List (
                               Make_Attribute_Reference (Loc,
                                 Prefix =>
-                                  New_Reference_To (Index_Typ, Loc),
+                                  New_Occurrence_Of (Index_Typ, Loc),
                                 Attribute_Name => Name_First)))))));
             Add (Decl);
          end;
@@ -13638,13 +13657,13 @@ package body Exp_Ch9 is
            or else Has_Interrupt_Handler (Ptyp)
          then
             Append_To (Args,
-              New_Reference_To (RTE (RE_Default_Interrupt_Priority), Loc));
+              New_Occurrence_Of (RTE (RE_Default_Interrupt_Priority), Loc));
 
          --  Normal case, no priority or xx_Handler specified, default priority
 
          else
             Append_To (Args,
-              New_Reference_To (RTE (RE_Unspecified_Priority), Loc));
+              New_Occurrence_Of (RTE (RE_Unspecified_Priority), Loc));
          end if;
 
          --  Test for Compiler_Info parameter. This parameter allows entry body
@@ -13712,7 +13731,7 @@ package body Exp_Ch9 is
 
                Append_To (Args,
                  Make_Attribute_Reference (Loc,
-                   Prefix         => New_Reference_To (P_Arr, Loc),
+                   Prefix         => New_Occurrence_Of (P_Arr, Loc),
                    Attribute_Name => Name_Unrestricted_Access));
 
                if Pkg_Id = System_Tasking_Protected_Objects_Entries then
@@ -13725,7 +13744,7 @@ package body Exp_Ch9 is
 
                   Append_To (Args,
                     Make_Attribute_Reference (Loc,
-                      Prefix         => New_Reference_To (P_Arr, Loc),
+                      Prefix         => New_Occurrence_Of (P_Arr, Loc),
                       Attribute_Name => Name_Unrestricted_Access));
                end if;
 
@@ -13756,7 +13775,7 @@ package body Exp_Ch9 is
 
             Append_To (L,
               Make_Procedure_Call_Statement (Loc,
-                Name => New_Reference_To (RTE (Called_Subp), Loc),
+                Name => New_Occurrence_Of (RTE (Called_Subp), Loc),
                 Parameter_Associations => Args));
          end;
       end if;
@@ -13793,7 +13812,7 @@ package body Exp_Ch9 is
 
                else
                   Append_To (Args,
-                    New_Reference_To
+                    New_Occurrence_Of
                       (RTE (RE_Default_Interrupt_Priority), Loc));
                end if;
             end if;
@@ -13843,7 +13862,7 @@ package body Exp_Ch9 is
                Append_To (L,
                  Make_Procedure_Call_Statement (Loc,
                    Name =>
-                     New_Reference_To
+                     New_Occurrence_Of
                         (RTE (RE_Install_Restricted_Handlers), Loc),
                    Parameter_Associations => Args));
 
@@ -13865,7 +13884,7 @@ package body Exp_Ch9 is
 
                Append_To (L,
                  Make_Procedure_Call_Statement (Loc,
-                   Name => New_Reference_To (RTE (RE_Install_Handlers), Loc),
+                   Name => New_Occurrence_Of (RTE (RE_Install_Handlers), Loc),
                    Parameter_Associations => Args));
             end if;
          end;
@@ -13928,7 +13947,7 @@ package body Exp_Ch9 is
              Selector_Name => Make_Identifier (Loc, Name_uPriority)));
       else
          Append_To (Args,
-           New_Reference_To (RTE (RE_Unspecified_Priority), Loc));
+           New_Occurrence_Of (RTE (RE_Unspecified_Priority), Loc));
       end if;
 
       --  Optional Stack parameter
@@ -13949,7 +13968,7 @@ package body Exp_Ch9 is
 
          else
             Append_To (Args,
-              New_Reference_To (RTE (RE_Null_Address), Loc));
+              New_Occurrence_Of (RTE (RE_Null_Address), Loc));
          end if;
       end if;
 
@@ -13970,7 +13989,7 @@ package body Exp_Ch9 is
 
       else
          Append_To (Args,
-           New_Reference_To (Storage_Size_Variable (Ttyp), Loc));
+           New_Occurrence_Of (Storage_Size_Variable (Ttyp), Loc));
       end if;
 
       --  Task_Info parameter. Set to Unspecified_Task_Info unless there is a
@@ -13984,7 +14003,7 @@ package body Exp_Ch9 is
 
       else
          Append_To (Args,
-           New_Reference_To (RTE (RE_Unspecified_Task_Info), Loc));
+           New_Occurrence_Of (RTE (RE_Unspecified_Task_Info), Loc));
       end if;
 
       --  CPU parameter. Set to Unspecified_CPU unless there is a CPU rep item,
@@ -14000,7 +14019,7 @@ package body Exp_Ch9 is
                Selector_Name => Make_Identifier (Loc, Name_uCPU))));
       else
          Append_To (Args,
-           New_Reference_To (RTE (RE_Unspecified_CPU), Loc));
+           New_Occurrence_Of (RTE (RE_Unspecified_CPU), Loc));
       end if;
 
       if not Restricted_Profile then
@@ -14028,7 +14047,7 @@ package body Exp_Ch9 is
 
          else
             Append_To (Args,
-              New_Reference_To (RTE (RE_Time_Span_Zero), Loc));
+              New_Occurrence_Of (RTE (RE_Time_Span_Zero), Loc));
          end if;
 
          --  Dispatching_Domain parameter. If no Dispatching_Domain rep item is
@@ -14118,7 +14137,7 @@ package body Exp_Ch9 is
             Append_To (Args,
               Unchecked_Convert_To (RTE (RE_Task_Procedure_Access),
                 Make_Qualified_Expression (Loc,
-                  Subtype_Mark => New_Reference_To (Subp_Ptr_Typ, Loc),
+                  Subtype_Mark => New_Occurrence_Of (Subp_Ptr_Typ, Loc),
                   Expression   =>
                     Make_Attribute_Reference (Loc,
                       Prefix =>
@@ -14201,7 +14220,7 @@ package body Exp_Ch9 is
             Create_RE := RE_Create_Task;
          end if;
 
-         Name := New_Reference_To (RTE (Create_RE), Loc);
+         Name := New_Occurrence_Of (RTE (Create_RE), Loc);
       end;
 
       return
@@ -14292,7 +14311,7 @@ package body Exp_Ch9 is
                 Defining_Identifier =>
                   Temp_Nam,
                 Object_Definition =>
-                  New_Reference_To (Etype (Formal), Loc)));
+                  New_Occurrence_Of (Etype (Formal), Loc)));
 
             if Ekind (Formal) /= E_Out_Parameter then
 
@@ -14300,7 +14319,7 @@ package body Exp_Ch9 is
                --    Jnn := <actual>
 
                Temp_Asn :=
-                 New_Reference_To (Temp_Nam, Loc);
+                 New_Occurrence_Of (Temp_Nam, Loc);
 
                Set_Assignment_OK (Temp_Asn);
 
@@ -14320,7 +14339,7 @@ package body Exp_Ch9 is
                 Attribute_Name =>
                   Name_Unchecked_Access,
                 Prefix =>
-                  New_Reference_To (Temp_Nam, Loc)));
+                  New_Occurrence_Of (Temp_Nam, Loc)));
 
             Has_Param := True;
 
@@ -14356,7 +14375,7 @@ package body Exp_Ch9 is
           Defining_Identifier =>
             P,
           Object_Definition =>
-            New_Reference_To (Blk_Typ, Loc),
+            New_Occurrence_Of (Blk_Typ, Loc),
           Expression =>
             Expr));
 
@@ -14397,7 +14416,7 @@ package body Exp_Ch9 is
                   Make_Explicit_Dereference (Loc,
                     Make_Selected_Component (Loc,
                       Prefix        =>
-                        New_Reference_To (P, Loc),
+                        New_Occurrence_Of (P, Loc),
                       Selector_Name =>
                         Make_Identifier (Loc, Chars (Formal)))));
 
index 6db896f..7dc4264 100644 (file)
@@ -472,7 +472,7 @@ package body Exp_Dbug is
       Res :=
         Make_Object_Declaration (Loc,
           Defining_Identifier => Obj,
-          Object_Definition   => New_Reference_To
+          Object_Definition   => New_Occurrence_Of
                                    (Standard_Debug_Renaming_Type, Loc));
 
       Set_Debug_Renaming_Link (Obj, Entity (Ren));
index dca778c..8ed3b39 100644 (file)
@@ -261,7 +261,7 @@ package body Exp_Disp is
                          Make_Selected_Component (Loc,
                            Prefix => New_Value (Ctrl_Arg),
                            Selector_Name =>
-                             New_Reference_To
+                             New_Occurrence_Of
                                (First_Tag_Component (Typ), Loc)),
 
                        Right_Opnd =>
@@ -269,7 +269,7 @@ package body Exp_Disp is
                            Prefix =>
                              Unchecked_Convert_To (Typ, New_Value (Param)),
                            Selector_Name =>
-                             New_Reference_To
+                             New_Occurrence_Of
                                (First_Tag_Component (Typ), Loc))),
 
                    Then_Statements =>
@@ -913,7 +913,7 @@ package body Exp_Disp is
          Controlling_Tag :=
            Make_Selected_Component (Loc,
              Prefix        => Duplicate_Subexpr_Move_Checks (Ctrl_Arg),
-             Selector_Name => New_Reference_To (DTC_Entity (Subp), Loc));
+             Selector_Name => New_Occurrence_Of (DTC_Entity (Subp), Loc));
       end if;
 
       --  Handle dispatching calls to predefined primitives
@@ -1034,7 +1034,7 @@ package body Exp_Disp is
                          Make_Selected_Component (Loc,
                            Prefix        => New_Value (Param),
                            Selector_Name =>
-                             New_Reference_To (First_Tag_Component (Typ),
+                             New_Occurrence_Of (First_Tag_Component (Typ),
                                                Loc)),
 
                        Right_Opnd =>
@@ -1043,7 +1043,7 @@ package body Exp_Disp is
                              Unchecked_Convert_To (Typ,
                                New_Value (Next_Actual (Param))),
                            Selector_Name =>
-                             New_Reference_To
+                             New_Occurrence_Of
                                (First_Tag_Component (Typ), Loc))),
                 Right_Opnd => New_Call);
 
@@ -1181,7 +1181,7 @@ package body Exp_Disp is
                        Prefix         => Duplicate_Subexpr (Expression (N)),
                        Attribute_Name => Name_Tag),
                      Make_Attribute_Reference (Loc,
-                       Prefix         => New_Reference_To (Iface_Typ, Loc),
+                       Prefix         => New_Occurrence_Of (Iface_Typ, Loc),
                        Attribute_Name => Name_Tag))));
             end if;
 
@@ -1218,7 +1218,7 @@ package body Exp_Disp is
             Rewrite (N,
               Unchecked_Convert_To (Etype (N),
                 Make_Function_Call (Loc,
-                  Name => New_Reference_To (RTE (RE_Displace), Loc),
+                  Name => New_Occurrence_Of (RTE (RE_Displace), Loc),
                   Parameter_Associations => New_List (
 
                     Unchecked_Convert_To (RTE (RE_Address),
@@ -1234,7 +1234,7 @@ package body Exp_Disp is
 
          Rewrite (N,
            Make_Function_Call (Loc,
-             Name => New_Reference_To (RTE (RE_Displace), Loc),
+             Name => New_Occurrence_Of (RTE (RE_Displace), Loc),
              Parameter_Associations => New_List (
                Make_Attribute_Reference (Loc,
                  Prefix => Relocate_Node (Expression (N)),
@@ -1331,7 +1331,7 @@ package body Exp_Disp is
                     Null_Exclusion_Present => False,
                     Constant_Present       => False,
                     Subtype_Indication     =>
-                      New_Reference_To (Desig_Typ, Loc)));
+                      New_Occurrence_Of (Desig_Typ, Loc)));
 
             Stats := New_List (
               Make_Simple_Return_Statement (Loc,
@@ -1356,7 +1356,7 @@ package body Exp_Disp is
                   Condition       =>
                     Make_Op_Eq (Loc,
                        Left_Opnd  => Make_Identifier (Loc, Name_uO),
-                       Right_Opnd => New_Reference_To
+                       Right_Opnd => New_Occurrence_Of
                                        (RTE (RE_Null_Address), Loc)),
 
                  Then_Statements => New_List (
@@ -1377,10 +1377,10 @@ package body Exp_Disp is
                         Defining_Identifier =>
                           Make_Defining_Identifier (Loc, Name_uO),
                         Parameter_Type =>
-                          New_Reference_To (RTE (RE_Address), Loc))),
+                          New_Occurrence_Of (RTE (RE_Address), Loc))),
 
                     Result_Definition =>
-                      New_Reference_To (Etype (N), Loc)),
+                      New_Occurrence_Of (Etype (N), Loc)),
 
                 Declarations => New_List (New_Typ_Decl),
 
@@ -1402,7 +1402,7 @@ package body Exp_Disp is
 
                Rewrite (N,
                  Make_Function_Call (Loc,
-                   Name => New_Reference_To (Fent, Loc),
+                   Name => New_Occurrence_Of (Fent, Loc),
                    Parameter_Associations => New_List (
                      Unchecked_Convert_To (RTE (RE_Address),
                        Relocate_Node (Expression (N))))));
@@ -1412,7 +1412,7 @@ package body Exp_Disp is
 
                Rewrite (N,
                  Make_Function_Call (Loc,
-                   Name => New_Reference_To (Fent, Loc),
+                   Name => New_Occurrence_Of (Fent, Loc),
                    Parameter_Associations => New_List (
                      Make_Attribute_Reference (Loc,
                        Prefix  => Unchecked_Convert_To (Operand_Typ,
@@ -1705,7 +1705,7 @@ package body Exp_Disp is
                  Chars => Chars (Formal)),
              In_Present => In_Present (Parent (Formal)),
              Out_Present => Out_Present (Parent (Formal)),
-             Parameter_Type => New_Reference_To (Ftyp, Loc),
+             Parameter_Type => New_Occurrence_Of (Ftyp, Loc),
              Expression => Expr));
 
          if not Is_Predefined_Dispatching_Operation (Prim) then
@@ -1757,11 +1757,11 @@ package body Exp_Disp is
                     Null_Exclusion_Present => False,
                     Constant_Present       => False,
                     Subtype_Indication     =>
-                      New_Reference_To (Ftyp, Loc)));
+                      New_Occurrence_Of (Ftyp, Loc)));
 
             New_Arg :=
               Unchecked_Convert_To (RTE (RE_Address),
-                New_Reference_To (Defining_Identifier (Formal), Loc));
+                New_Occurrence_Of (Defining_Identifier (Formal), Loc));
 
             if not RTE_Available (RE_Offset_To_Top) then
                Offset_To_Top :=
@@ -1769,7 +1769,7 @@ package body Exp_Disp is
             else
                Offset_To_Top :=
                  Make_Function_Call (Loc,
-                   Name => New_Reference_To (RTE (RE_Offset_To_Top), Loc),
+                   Name => New_Occurrence_Of (RTE (RE_Offset_To_Top), Loc),
                    Parameter_Associations => New_List (New_Arg));
             end if;
 
@@ -1778,13 +1778,14 @@ package body Exp_Disp is
                 Defining_Identifier => Make_Temporary (Loc, 'S'),
                 Constant_Present    => True,
                 Object_Definition   =>
-                  New_Reference_To (RTE (RE_Storage_Offset), Loc),
+                  New_Occurrence_Of (RTE (RE_Storage_Offset), Loc),
                 Expression          =>
                   Make_Op_Subtract (Loc,
                     Left_Opnd  =>
                       Unchecked_Convert_To
                         (RTE (RE_Storage_Offset),
-                         New_Reference_To (Defining_Identifier (Formal), Loc)),
+                         New_Occurrence_Of
+                           (Defining_Identifier (Formal), Loc)),
                      Right_Opnd =>
                        Offset_To_Top));
 
@@ -1797,7 +1798,7 @@ package body Exp_Disp is
             Append_To (Actuals,
               Unchecked_Convert_To
                 (Defining_Identifier (Decl_2),
-                 New_Reference_To (Defining_Identifier (Decl_1), Loc)));
+                 New_Occurrence_Of (Defining_Identifier (Decl_1), Loc)));
 
          elsif Is_Controlling_Formal (Target_Formal) then
 
@@ -1809,7 +1810,7 @@ package body Exp_Disp is
             New_Arg :=
               Make_Attribute_Reference (Loc,
                 Prefix =>
-                  New_Reference_To (Defining_Identifier (Formal), Loc),
+                  New_Occurrence_Of (Defining_Identifier (Formal), Loc),
                 Attribute_Name =>
                   Name_Address);
 
@@ -1819,7 +1820,7 @@ package body Exp_Disp is
             else
                Offset_To_Top :=
                  Make_Function_Call (Loc,
-                   Name => New_Reference_To (RTE (RE_Offset_To_Top), Loc),
+                   Name => New_Occurrence_Of (RTE (RE_Offset_To_Top), Loc),
                    Parameter_Associations => New_List (New_Arg));
             end if;
 
@@ -1828,7 +1829,7 @@ package body Exp_Disp is
                 Defining_Identifier => Make_Temporary (Loc, 'S'),
                 Constant_Present    => True,
                 Object_Definition   =>
-                  New_Reference_To (RTE (RE_Storage_Offset), Loc),
+                  New_Occurrence_Of (RTE (RE_Storage_Offset), Loc),
                 Expression          =>
                   Make_Op_Subtract (Loc,
                     Left_Opnd =>
@@ -1836,7 +1837,7 @@ package body Exp_Disp is
                         (RTE (RE_Storage_Offset),
                          Make_Attribute_Reference (Loc,
                            Prefix =>
-                             New_Reference_To
+                             New_Occurrence_Of
                                (Defining_Identifier (Formal), Loc),
                            Attribute_Name => Name_Address)),
                     Right_Opnd =>
@@ -1847,11 +1848,11 @@ package body Exp_Disp is
                 Defining_Identifier => Make_Temporary (Loc, 'S'),
                 Constant_Present    => True,
                 Object_Definition   =>
-                  New_Reference_To (RTE (RE_Addr_Ptr), Loc),
+                  New_Occurrence_Of (RTE (RE_Addr_Ptr), Loc),
                 Expression          =>
                   Unchecked_Convert_To
                     (RTE (RE_Addr_Ptr),
-                     New_Reference_To (Defining_Identifier (Decl_1), Loc)));
+                     New_Occurrence_Of (Defining_Identifier (Decl_1), Loc)));
 
             Append_To (Decl, Decl_1);
             Append_To (Decl, Decl_2);
@@ -1862,7 +1863,7 @@ package body Exp_Disp is
             Append_To (Actuals,
               Unchecked_Convert_To (Ftyp,
                  Make_Explicit_Dereference (Loc,
-                   New_Reference_To (Defining_Identifier (Decl_2), Loc))));
+                   New_Occurrence_Of (Defining_Identifier (Decl_2), Loc))));
 
          --  Ensure proper matching of access types. Required to avoid
          --  reporting spurious errors.
@@ -1870,13 +1871,13 @@ package body Exp_Disp is
          elsif Is_Access_Type (Etype (Target_Formal)) then
             Append_To (Actuals,
               Unchecked_Convert_To (Base_Type (Etype (Target_Formal)),
-                New_Reference_To (Defining_Identifier (Formal), Loc)));
+                New_Occurrence_Of (Defining_Identifier (Formal), Loc)));
 
          --  No special management required for this actual
 
          else
             Append_To (Actuals,
-               New_Reference_To (Defining_Identifier (Formal), Loc));
+               New_Occurrence_Of (Defining_Identifier (Formal), Loc));
          end if;
 
          Next_Formal (Target_Formal);
@@ -2239,7 +2240,7 @@ package body Exp_Disp is
                Make_Handled_Sequence_Of_Statements (Loc,
                  New_List (Make_Assignment_Statement (Loc,
                    Name       => Make_Identifier (Loc, Name_uF),
-                   Expression => New_Reference_To (Standard_False, Loc)))));
+                   Expression => New_Occurrence_Of (Standard_False, Loc)))));
       end if;
 
       if Is_Concurrent_Record_Type (Typ) then
@@ -2255,12 +2256,12 @@ package body Exp_Disp is
          if Tagged_Type_Expansion then
             Tag_Node :=
               Unchecked_Convert_To (RTE (RE_Tag),
-                New_Reference_To
+                New_Occurrence_Of
                   (Node (First_Elmt (Access_Disp_Table (Typ))), Loc));
          else
             Tag_Node :=
               Make_Attribute_Reference (Loc,
-                Prefix => New_Reference_To (Typ, Loc),
+                Prefix => New_Occurrence_Of (Typ, Loc),
                 Attribute_Name => Name_Tag);
          end if;
 
@@ -2269,11 +2270,11 @@ package body Exp_Disp is
              Defining_Identifier =>
                Make_Defining_Identifier (Loc, Name_uI),
              Object_Definition =>
-               New_Reference_To (Standard_Integer, Loc),
+               New_Occurrence_Of (Standard_Integer, Loc),
              Expression =>
                Make_Function_Call (Loc,
                  Name =>
-                   New_Reference_To (RTE (RE_Get_Entry_Index), Loc),
+                   New_Occurrence_Of (RTE (RE_Get_Entry_Index), Loc),
                  Parameter_Associations =>
                    New_List (
                      Tag_Node,
@@ -2290,7 +2291,7 @@ package body Exp_Disp is
                 Defining_Identifier =>
                   Com_Block,
                 Object_Definition =>
-                  New_Reference_To (RTE (RE_Communication_Block), Loc)));
+                  New_Occurrence_Of (RTE (RE_Communication_Block), Loc)));
 
             --  Build T._object'Access for calls below
 
@@ -2320,22 +2321,22 @@ package body Exp_Disp is
                   Append_To (Stmts,
                     Make_Procedure_Call_Statement (Loc,
                       Name =>
-                        New_Reference_To (RTE (RE_Protected_Entry_Call), Loc),
+                        New_Occurrence_Of (RTE (RE_Protected_Entry_Call), Loc),
                       Parameter_Associations =>
                         New_List (
                           Obj_Ref,
 
                           Make_Unchecked_Type_Conversion (Loc,  --  entry index
                             Subtype_Mark =>
-                              New_Reference_To
+                              New_Occurrence_Of
                                 (RTE (RE_Protected_Entry_Index), Loc),
                             Expression => Make_Identifier (Loc, Name_uI)),
 
                           Make_Identifier (Loc, Name_uP), --  parameter block
-                          New_Reference_To                --  Asynchronous_Call
+                          New_Occurrence_Of               --  Asynchronous_Call
                             (RTE (RE_Asynchronous_Call), Loc),
-
-                          New_Reference_To (Com_Block, Loc)))); -- comm block
+                          New_Occurrence_Of               -- comm block
+                            (Com_Block, Loc))));
 
                when others =>
                   raise Program_Error;
@@ -2350,10 +2351,10 @@ package body Exp_Disp is
                 Expression =>
                   Make_Unchecked_Type_Conversion (Loc,
                     Subtype_Mark =>
-                      New_Reference_To (
+                      New_Occurrence_Of (
                         RTE (RE_Dummy_Communication_Block), Loc),
                     Expression =>
-                      New_Reference_To (Com_Block, Loc))));
+                      New_Occurrence_Of (Com_Block, Loc))));
 
             --  Generate:
             --    F := False;
@@ -2361,7 +2362,7 @@ package body Exp_Disp is
             Append_To (Stmts,
               Make_Assignment_Statement (Loc,
                 Name       => Make_Identifier (Loc, Name_uF),
-                Expression => New_Reference_To (Standard_False, Loc)));
+                Expression => New_Occurrence_Of (Standard_False, Loc)));
 
          else
             pragma Assert (Ekind (Conc_Typ) = E_Task_Type);
@@ -2380,7 +2381,7 @@ package body Exp_Disp is
             Append_To (Stmts,
               Make_Procedure_Call_Statement (Loc,
                 Name =>
-                  New_Reference_To (RTE (RE_Task_Entry_Call), Loc),
+                  New_Occurrence_Of (RTE (RE_Task_Entry_Call), Loc),
                 Parameter_Associations =>
                   New_List (
                     Make_Selected_Component (Loc,         -- T._task_id
@@ -2389,11 +2390,11 @@ package body Exp_Disp is
 
                     Make_Unchecked_Type_Conversion (Loc,  --  entry index
                       Subtype_Mark =>
-                        New_Reference_To (RTE (RE_Task_Entry_Index), Loc),
+                        New_Occurrence_Of (RTE (RE_Task_Entry_Index), Loc),
                       Expression => Make_Identifier (Loc, Name_uI)),
 
                     Make_Identifier (Loc, Name_uP),       --  parameter block
-                    New_Reference_To                      --  Asynchronous_Call
+                    New_Occurrence_Of                     --  Asynchronous_Call
                       (RTE (RE_Asynchronous_Call), Loc),
                     Make_Identifier (Loc, Name_uF))));    --  status flag
          end if;
@@ -2404,7 +2405,7 @@ package body Exp_Disp is
          Append_To (Stmts,
            Make_Assignment_Statement (Loc,
              Name       => Make_Identifier (Loc, Name_uF),
-             Expression => New_Reference_To (Standard_False, Loc)));
+             Expression => New_Occurrence_Of (Standard_False, Loc)));
       end if;
 
       return
@@ -2444,7 +2445,7 @@ package body Exp_Disp is
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uT),
           Parameter_Type =>
-            New_Reference_To (Typ, Loc),
+            New_Occurrence_Of (Typ, Loc),
           In_Present  => True,
           Out_Present => True),
 
@@ -2452,26 +2453,26 @@ package body Exp_Disp is
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uS),
           Parameter_Type =>
-            New_Reference_To (Standard_Integer, Loc)),
+            New_Occurrence_Of (Standard_Integer, Loc)),
 
         Make_Parameter_Specification (Loc,
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uP),
           Parameter_Type =>
-            New_Reference_To (RTE (RE_Address), Loc)),
+            New_Occurrence_Of (RTE (RE_Address), Loc)),
 
         Make_Parameter_Specification (Loc,
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uB),
           Parameter_Type =>
-            New_Reference_To (RTE (RE_Dummy_Communication_Block), Loc),
+            New_Occurrence_Of (RTE (RE_Dummy_Communication_Block), Loc),
           Out_Present => True),
 
         Make_Parameter_Specification (Loc,
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uF),
           Parameter_Type =>
-            New_Reference_To (Standard_Boolean, Loc),
+            New_Occurrence_Of (Standard_Boolean, Loc),
           Out_Present => True)));
 
       return
@@ -2580,7 +2581,7 @@ package body Exp_Disp is
                Make_Handled_Sequence_Of_Statements (Loc,
                  New_List (Make_Assignment_Statement (Loc,
                    Name       => Make_Identifier (Loc, Name_uF),
-                   Expression => New_Reference_To (Standard_False, Loc)))));
+                   Expression => New_Occurrence_Of (Standard_False, Loc)))));
       end if;
 
       if Is_Concurrent_Record_Type (Typ) then
@@ -2597,7 +2598,7 @@ package body Exp_Disp is
              Defining_Identifier =>
                Make_Defining_Identifier (Loc, Name_uI),
              Object_Definition =>
-               New_Reference_To (Standard_Integer, Loc)));
+               New_Occurrence_Of (Standard_Integer, Loc)));
 
          --  Generate:
          --    C := Ada.Tags.Get_Prim_Op_Kind (Ada.Tags.Tag! (<type>VP), S);
@@ -2624,7 +2625,7 @@ package body Exp_Disp is
              Defining_Identifier =>
                Blk_Nam,
              Object_Definition =>
-               New_Reference_To (RTE (RE_Communication_Block), Loc)));
+               New_Occurrence_Of (RTE (RE_Communication_Block), Loc)));
 
          --  Generate:
          --    I := Ada.Tags.Get_Entry_Index (Ada.Tags.Tag! (<type>VP), S);
@@ -2634,13 +2635,13 @@ package body Exp_Disp is
          if Tagged_Type_Expansion then
             Tag_Node :=
               Unchecked_Convert_To (RTE (RE_Tag),
-                New_Reference_To
+                New_Occurrence_Of
                   (Node (First_Elmt (Access_Disp_Table (Typ))), Loc));
 
          else
             Tag_Node :=
               Make_Attribute_Reference (Loc,
-                Prefix => New_Reference_To (Typ, Loc),
+                Prefix => New_Occurrence_Of (Typ, Loc),
                 Attribute_Name => Name_Tag);
          end if;
 
@@ -2650,7 +2651,7 @@ package body Exp_Disp is
              Expression =>
                Make_Function_Call (Loc,
                  Name =>
-                   New_Reference_To (RTE (RE_Get_Entry_Index), Loc),
+                   New_Occurrence_Of (RTE (RE_Get_Entry_Index), Loc),
                  Parameter_Associations =>
                    New_List (
                      Tag_Node,
@@ -2684,23 +2685,23 @@ package body Exp_Disp is
                   Append_To (Stmts,
                     Make_Procedure_Call_Statement (Loc,
                       Name =>
-                        New_Reference_To (RTE (RE_Protected_Entry_Call), Loc),
+                        New_Occurrence_Of (RTE (RE_Protected_Entry_Call), Loc),
                       Parameter_Associations =>
                         New_List (
                           Obj_Ref,
 
                           Make_Unchecked_Type_Conversion (Loc,  --  entry index
                             Subtype_Mark =>
-                              New_Reference_To
+                              New_Occurrence_Of
                                  (RTE (RE_Protected_Entry_Index), Loc),
                             Expression => Make_Identifier (Loc, Name_uI)),
 
                           Make_Identifier (Loc, Name_uP),  --  parameter block
 
-                          New_Reference_To (               --  Conditional_Call
-                            RTE (RE_Conditional_Call), Loc),
-                          New_Reference_To (               --  Bnn
-                            Blk_Nam, Loc))));
+                          New_Occurrence_Of                --  Conditional_Call
+                            (RTE (RE_Conditional_Call), Loc),
+                          New_Occurrence_Of                --  Bnn
+                            (Blk_Nam, Loc))));
 
                when System_Tasking_Protected_Objects_Single_Entry =>
 
@@ -2710,7 +2711,7 @@ package body Exp_Disp is
                   Append_To (Stmts,
                     Make_Procedure_Call_Statement (Loc,
                       Name =>
-                        New_Reference_To
+                        New_Occurrence_Of
                           (RTE (RE_Protected_Single_Entry_Call), Loc),
                       Parameter_Associations =>
                         New_List (
@@ -2720,7 +2721,7 @@ package body Exp_Disp is
                             Prefix         => Make_Identifier (Loc, Name_uP),
                             Attribute_Name => Name_Address),
 
-                            New_Reference_To
+                            New_Occurrence_Of
                              (RTE (RE_Conditional_Call), Loc))));
                when others =>
                   raise Program_Error;
@@ -2740,10 +2741,10 @@ package body Exp_Disp is
                     Right_Opnd =>
                       Make_Function_Call (Loc,
                         Name =>
-                          New_Reference_To (RTE (RE_Cancelled), Loc),
+                          New_Occurrence_Of (RTE (RE_Cancelled), Loc),
                         Parameter_Associations =>
                           New_List (
-                            New_Reference_To (Blk_Nam, Loc))))));
+                            New_Occurrence_Of (Blk_Nam, Loc))))));
          else
             pragma Assert (Ekind (Conc_Typ) = E_Task_Type);
 
@@ -2761,7 +2762,7 @@ package body Exp_Disp is
             Append_To (Stmts,
               Make_Procedure_Call_Statement (Loc,
                 Name =>
-                  New_Reference_To (RTE (RE_Task_Entry_Call), Loc),
+                  New_Occurrence_Of (RTE (RE_Task_Entry_Call), Loc),
                 Parameter_Associations =>
                   New_List (
 
@@ -2771,11 +2772,11 @@ package body Exp_Disp is
 
                     Make_Unchecked_Type_Conversion (Loc,  --  entry index
                       Subtype_Mark =>
-                        New_Reference_To (RTE (RE_Task_Entry_Index), Loc),
+                        New_Occurrence_Of (RTE (RE_Task_Entry_Index), Loc),
                       Expression   => Make_Identifier (Loc, Name_uI)),
 
                     Make_Identifier (Loc, Name_uP),       --  parameter block
-                    New_Reference_To                      --  Conditional_Call
+                    New_Occurrence_Of                      --  Conditional_Call
                       (RTE (RE_Conditional_Call), Loc),
                     Make_Identifier (Loc, Name_uF))));    --  status flag
          end if;
@@ -2786,11 +2787,11 @@ package body Exp_Disp is
          Append_To (Stmts,
            Make_Assignment_Statement (Loc,
              Name       => Make_Identifier (Loc, Name_uF),
-             Expression => New_Reference_To (Standard_False, Loc)));
+             Expression => New_Occurrence_Of (Standard_False, Loc)));
          Append_To (Stmts,
            Make_Assignment_Statement (Loc,
              Name       => Make_Identifier (Loc, Name_uC),
-             Expression => New_Reference_To (RTE (RE_POK_Function), Loc)));
+             Expression => New_Occurrence_Of (RTE (RE_POK_Function), Loc)));
       end if;
 
       return
@@ -2830,7 +2831,7 @@ package body Exp_Disp is
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uT),
           Parameter_Type =>
-            New_Reference_To (Typ, Loc),
+            New_Occurrence_Of (Typ, Loc),
           In_Present  => True,
           Out_Present => True),
 
@@ -2838,26 +2839,26 @@ package body Exp_Disp is
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uS),
           Parameter_Type =>
-            New_Reference_To (Standard_Integer, Loc)),
+            New_Occurrence_Of (Standard_Integer, Loc)),
 
         Make_Parameter_Specification (Loc,
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uP),
           Parameter_Type =>
-            New_Reference_To (RTE (RE_Address), Loc)),
+            New_Occurrence_Of (RTE (RE_Address), Loc)),
 
         Make_Parameter_Specification (Loc,
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uC),
           Parameter_Type =>
-            New_Reference_To (RTE (RE_Prim_Op_Kind), Loc),
+            New_Occurrence_Of (RTE (RE_Prim_Op_Kind), Loc),
           Out_Present => True),
 
         Make_Parameter_Specification (Loc,
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uF),
           Parameter_Type =>
-            New_Reference_To (Standard_Boolean, Loc),
+            New_Occurrence_Of (Standard_Boolean, Loc),
           Out_Present => True)));
 
       return
@@ -2900,13 +2901,13 @@ package body Exp_Disp is
       if Tagged_Type_Expansion then
          Tag_Node :=
            Unchecked_Convert_To (RTE (RE_Tag),
-             New_Reference_To
+             New_Occurrence_Of
               (Node (First_Elmt (Access_Disp_Table (Typ))), Loc));
 
       else
          Tag_Node :=
            Make_Attribute_Reference (Loc,
-             Prefix => New_Reference_To (Typ, Loc),
+             Prefix => New_Occurrence_Of (Typ, Loc),
              Attribute_Name => Name_Tag);
       end if;
 
@@ -2925,7 +2926,7 @@ package body Exp_Disp is
                   Expression =>
                     Make_Function_Call (Loc,
                       Name =>
-                        New_Reference_To (RTE (RE_Get_Prim_Op_Kind), Loc),
+                        New_Occurrence_Of (RTE (RE_Get_Prim_Op_Kind), Loc),
                       Parameter_Associations => New_List (
                         Tag_Node,
                         Make_Identifier (Loc, Name_uS)))))));
@@ -2957,7 +2958,7 @@ package body Exp_Disp is
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uT),
           Parameter_Type =>
-            New_Reference_To (Typ, Loc),
+            New_Occurrence_Of (Typ, Loc),
           In_Present  => True,
           Out_Present => True),
 
@@ -2965,13 +2966,13 @@ package body Exp_Disp is
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uS),
           Parameter_Type =>
-            New_Reference_To (Standard_Integer, Loc)),
+            New_Occurrence_Of (Standard_Integer, Loc)),
 
         Make_Parameter_Specification (Loc,
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uC),
           Parameter_Type =>
-            New_Reference_To (RTE (RE_Prim_Op_Kind), Loc),
+            New_Occurrence_Of (RTE (RE_Prim_Op_Kind), Loc),
           Out_Present => True)));
 
       return
@@ -3004,7 +3005,7 @@ package body Exp_Disp is
              Expression =>
                Make_Unchecked_Type_Conversion (Loc,
                  Subtype_Mark =>
-                   New_Reference_To (RTE (RE_Address), Loc),
+                   New_Occurrence_Of (RTE (RE_Address), Loc),
                  Expression =>
                    Make_Selected_Component (Loc,
                      Prefix        => Make_Identifier (Loc, Name_uT),
@@ -3019,7 +3020,7 @@ package body Exp_Disp is
          Ret :=
            Make_Simple_Return_Statement (Loc,
              Expression =>
-               New_Reference_To (RTE (RE_Null_Address), Loc));
+               New_Occurrence_Of (RTE (RE_Null_Address), Loc));
       end if;
 
       return
@@ -3054,9 +3055,9 @@ package body Exp_Disp is
               Defining_Identifier =>
                 Make_Defining_Identifier (Loc, Name_uT),
               Parameter_Type =>
-                New_Reference_To (Typ, Loc))),
+                New_Occurrence_Of (Typ, Loc))),
           Result_Definition =>
-            New_Reference_To (RTE (RE_Address), Loc));
+            New_Occurrence_Of (RTE (RE_Address), Loc));
    end Make_Disp_Get_Task_Id_Spec;
 
    ----------------------------
@@ -3124,14 +3125,14 @@ package body Exp_Disp is
 
                     Make_Procedure_Call_Statement (Loc,
                       Name =>
-                        New_Reference_To (
+                        New_Occurrence_Of (
                           RTE (RE_Requeue_Protected_Entry), Loc),
                       Parameter_Associations =>
                         New_List (
 
                           Make_Unchecked_Type_Conversion (Loc,  -- PEA (P)
                             Subtype_Mark =>
-                              New_Reference_To (
+                              New_Occurrence_Of (
                                 RTE (RE_Protection_Entries_Access), Loc),
                             Expression =>
                               Make_Identifier (Loc, Name_uP)),
@@ -3148,7 +3149,7 @@ package body Exp_Disp is
 
                           Make_Unchecked_Type_Conversion (Loc,  -- entry index
                             Subtype_Mark =>
-                              New_Reference_To (
+                              New_Occurrence_Of (
                                 RTE (RE_Protected_Entry_Index), Loc),
                             Expression => Make_Identifier (Loc, Name_uI)),
 
@@ -3161,7 +3162,7 @@ package body Exp_Disp is
 
                     Make_Procedure_Call_Statement (Loc,
                       Name =>
-                        New_Reference_To (
+                        New_Occurrence_Of (
                           RTE (RE_Requeue_Task_To_Protected_Entry), Loc),
                       Parameter_Associations =>
                         New_List (
@@ -3178,7 +3179,7 @@ package body Exp_Disp is
 
                           Make_Unchecked_Type_Conversion (Loc, -- entry index
                             Subtype_Mark =>
-                              New_Reference_To (
+                              New_Occurrence_Of (
                                 RTE (RE_Protected_Entry_Index), Loc),
                             Expression =>
                               Make_Identifier (Loc, Name_uI)),
@@ -3212,14 +3213,14 @@ package body Exp_Disp is
 
                Make_Procedure_Call_Statement (Loc,
                  Name =>
-                   New_Reference_To
+                   New_Occurrence_Of
                      (RTE (RE_Requeue_Protected_To_Task_Entry), Loc),
 
                  Parameter_Associations => New_List (
 
                    Make_Unchecked_Type_Conversion (Loc,  -- PEA (P)
                      Subtype_Mark =>
-                       New_Reference_To
+                       New_Occurrence_Of
                          (RTE (RE_Protection_Entries_Access), Loc),
                           Expression => Make_Identifier (Loc, Name_uP)),
 
@@ -3229,7 +3230,7 @@ package body Exp_Disp is
 
                    Make_Unchecked_Type_Conversion (Loc,  -- entry index
                      Subtype_Mark =>
-                       New_Reference_To (RTE (RE_Task_Entry_Index), Loc),
+                       New_Occurrence_Of (RTE (RE_Task_Entry_Index), Loc),
                      Expression   => Make_Identifier (Loc, Name_uI)),
 
                    Make_Identifier (Loc, Name_uA)))),    -- abort status
@@ -3239,7 +3240,7 @@ package body Exp_Disp is
                --  Call to Requeue_Task_Entry
 
                Make_Procedure_Call_Statement (Loc,
-                 Name => New_Reference_To (RTE (RE_Requeue_Task_Entry), Loc),
+                 Name => New_Occurrence_Of (RTE (RE_Requeue_Task_Entry), Loc),
 
                  Parameter_Associations => New_List (
 
@@ -3249,7 +3250,7 @@ package body Exp_Disp is
 
                    Make_Unchecked_Type_Conversion (Loc,  -- entry index
                      Subtype_Mark =>
-                       New_Reference_To (RTE (RE_Task_Entry_Index), Loc),
+                       New_Occurrence_Of (RTE (RE_Task_Entry_Index), Loc),
                      Expression   => Make_Identifier (Loc, Name_uI)),
 
                    Make_Identifier (Loc, Name_uA))))));  -- abort status
@@ -3302,7 +3303,7 @@ package body Exp_Disp is
                 Defining_Identifier =>
                   Make_Defining_Identifier (Loc, Name_uO),
                 Parameter_Type =>
-                  New_Reference_To (Typ, Loc),
+                  New_Occurrence_Of (Typ, Loc),
                 In_Present  => True,
                 Out_Present => True),
 
@@ -3310,25 +3311,25 @@ package body Exp_Disp is
                 Defining_Identifier =>
                   Make_Defining_Identifier (Loc, Name_uF),
                 Parameter_Type =>
-                  New_Reference_To (Standard_Boolean, Loc)),
+                  New_Occurrence_Of (Standard_Boolean, Loc)),
 
               Make_Parameter_Specification (Loc,             --  P
                 Defining_Identifier =>
                   Make_Defining_Identifier (Loc, Name_uP),
                 Parameter_Type =>
-                  New_Reference_To (RTE (RE_Address), Loc)),
+                  New_Occurrence_Of (RTE (RE_Address), Loc)),
 
               Make_Parameter_Specification (Loc,             --  I
                 Defining_Identifier =>
                   Make_Defining_Identifier (Loc, Name_uI),
                 Parameter_Type =>
-                  New_Reference_To (Standard_Integer, Loc)),
+                  New_Occurrence_Of (Standard_Integer, Loc)),
 
               Make_Parameter_Specification (Loc,             --  A
                 Defining_Identifier =>
                   Make_Defining_Identifier (Loc, Name_uA),
                 Parameter_Type =>
-                  New_Reference_To (Standard_Boolean, Loc))));
+                  New_Occurrence_Of (Standard_Boolean, Loc))));
    end Make_Disp_Requeue_Spec;
 
    ---------------------------------
@@ -3437,7 +3438,7 @@ package body Exp_Disp is
                  New_List (
                    Make_Assignment_Statement (Loc,
                      Name       => Make_Identifier (Loc, Name_uF),
-                     Expression => New_Reference_To (Standard_False, Loc)))));
+                     Expression => New_Occurrence_Of (Standard_False, Loc)))));
       end if;
 
       if Is_Concurrent_Record_Type (Typ) then
@@ -3452,7 +3453,8 @@ package body Exp_Disp is
          Append_To (Decls,
            Make_Object_Declaration (Loc,
              Defining_Identifier => Make_Defining_Identifier (Loc, Name_uI),
-             Object_Definition   => New_Reference_To (Standard_Integer, Loc)));
+             Object_Definition   =>
+               New_Occurrence_Of (Standard_Integer, Loc)));
 
          --  Generate:
          --    C := Get_Prim_Op_Kind (tag! (<type>VP), S);
@@ -3475,13 +3477,13 @@ package body Exp_Disp is
          if Tagged_Type_Expansion then
             Tag_Node :=
               Unchecked_Convert_To (RTE (RE_Tag),
-                New_Reference_To
+                New_Occurrence_Of
                   (Node (First_Elmt (Access_Disp_Table (Typ))), Loc));
 
          else
             Tag_Node :=
               Make_Attribute_Reference (Loc,
-                Prefix         => New_Reference_To (Typ, Loc),
+                Prefix         => New_Occurrence_Of (Typ, Loc),
                 Attribute_Name => Name_Tag);
          end if;
 
@@ -3490,7 +3492,7 @@ package body Exp_Disp is
              Name       => Make_Identifier (Loc, Name_uI),
              Expression =>
                Make_Function_Call (Loc,
-                 Name => New_Reference_To (RTE (RE_Get_Entry_Index), Loc),
+                 Name => New_Occurrence_Of (RTE (RE_Get_Entry_Index), Loc),
                  Parameter_Associations =>
                    New_List (
                      Tag_Node,
@@ -3535,7 +3537,7 @@ package body Exp_Disp is
                   Append_To (Stmts,
                     Make_Procedure_Call_Statement (Loc,
                       Name =>
-                        New_Reference_To
+                        New_Occurrence_Of
                           (RTE (RE_Timed_Protected_Entry_Call), Loc),
                       Parameter_Associations =>
                         New_List (
@@ -3543,7 +3545,7 @@ package body Exp_Disp is
 
                           Make_Unchecked_Type_Conversion (Loc,  --  entry index
                             Subtype_Mark =>
-                              New_Reference_To
+                              New_Occurrence_Of
                                 (RTE (RE_Protected_Entry_Index), Loc),
                             Expression =>
                               Make_Identifier (Loc, Name_uI)),
@@ -3578,7 +3580,7 @@ package body Exp_Disp is
             Append_To (Stmts,
               Make_Procedure_Call_Statement (Loc,
                 Name =>
-                  New_Reference_To (RTE (RE_Timed_Task_Entry_Call), Loc),
+                  New_Occurrence_Of (RTE (RE_Timed_Task_Entry_Call), Loc),
                 Parameter_Associations =>
                   New_List (
 
@@ -3588,7 +3590,7 @@ package body Exp_Disp is
 
                     Make_Unchecked_Type_Conversion (Loc,  --  entry index
                       Subtype_Mark =>
-                        New_Reference_To (RTE (RE_Task_Entry_Index), Loc),
+                        New_Occurrence_Of (RTE (RE_Task_Entry_Index), Loc),
                       Expression   => Make_Identifier (Loc, Name_uI)),
 
                     Make_Identifier (Loc, Name_uP),       --  parameter block
@@ -3603,11 +3605,11 @@ package body Exp_Disp is
          Append_To (Stmts,
            Make_Assignment_Statement (Loc,
              Name       => Make_Identifier (Loc, Name_uF),
-             Expression => New_Reference_To (Standard_False, Loc)));
+             Expression => New_Occurrence_Of (Standard_False, Loc)));
          Append_To (Stmts,
            Make_Assignment_Statement (Loc,
              Name       => Make_Identifier (Loc, Name_uC),
-             Expression => New_Reference_To (RTE (RE_POK_Function), Loc)));
+             Expression => New_Occurrence_Of (RTE (RE_POK_Function), Loc)));
       end if;
 
       return
@@ -3648,7 +3650,7 @@ package body Exp_Disp is
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uT),
           Parameter_Type =>
-            New_Reference_To (Typ, Loc),
+            New_Occurrence_Of (Typ, Loc),
           In_Present  => True,
           Out_Present => True),
 
@@ -3656,31 +3658,31 @@ package body Exp_Disp is
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uS),
           Parameter_Type =>
-            New_Reference_To (Standard_Integer, Loc)),
+            New_Occurrence_Of (Standard_Integer, Loc)),
 
         Make_Parameter_Specification (Loc,
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uP),
           Parameter_Type =>
-            New_Reference_To (RTE (RE_Address), Loc)),
+            New_Occurrence_Of (RTE (RE_Address), Loc)),
 
         Make_Parameter_Specification (Loc,
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uD),
           Parameter_Type =>
-            New_Reference_To (Standard_Duration, Loc)),
+            New_Occurrence_Of (Standard_Duration, Loc)),
 
         Make_Parameter_Specification (Loc,
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uM),
           Parameter_Type =>
-            New_Reference_To (Standard_Integer, Loc)),
+            New_Occurrence_Of (Standard_Integer, Loc)),
 
         Make_Parameter_Specification (Loc,
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uC),
           Parameter_Type =>
-            New_Reference_To (RTE (RE_Prim_Op_Kind), Loc),
+            New_Occurrence_Of (RTE (RE_Prim_Op_Kind), Loc),
           Out_Present => True)));
 
       Append_To (Params,
@@ -3688,7 +3690,7 @@ package body Exp_Disp is
           Defining_Identifier =>
             Make_Defining_Identifier (Loc, Name_uF),
           Parameter_Type =>
-            New_Reference_To (Standard_Boolean, Loc),
+            New_Occurrence_Of (Standard_Boolean, Loc),
           Out_Present => True));
 
       return
@@ -4072,7 +4074,7 @@ package body Exp_Disp is
                   New_Node :=
                     Unchecked_Convert_To (RTE (RE_Prim_Ptr),
                       Make_Attribute_Reference (Loc,
-                        Prefix => New_Reference_To (Prim_Table (J), Loc),
+                        Prefix => New_Occurrence_Of (Prim_Table (J), Loc),
                         Attribute_Name => Name_Unrestricted_Access));
                else
                   New_Node := Make_Null (Loc);
@@ -4093,7 +4095,7 @@ package body Exp_Disp is
               Make_Subtype_Declaration (Loc,
                 Defining_Identifier => Make_Temporary (Loc, 'S'),
                 Subtype_Indication  =>
-                  New_Reference_To (RTE (RE_Address_Array), Loc));
+                  New_Occurrence_Of (RTE (RE_Address_Array), Loc));
 
             Append_To (Result, Decl);
 
@@ -4102,18 +4104,18 @@ package body Exp_Disp is
                 Defining_Identifier => Predef_Prims,
                 Constant_Present    => Building_Static_DT (Typ),
                 Aliased_Present     => True,
-                Object_Definition   => New_Reference_To
+                Object_Definition   => New_Occurrence_Of
                                          (Defining_Identifier (Decl), Loc),
                 Expression => New_Node));
 
             Append_To (Result,
               Make_Attribute_Definition_Clause (Loc,
-                Name       => New_Reference_To (Predef_Prims, Loc),
+                Name       => New_Occurrence_Of (Predef_Prims, Loc),
                 Chars      => Name_Alignment,
                 Expression =>
                   Make_Attribute_Reference (Loc,
                     Prefix =>
-                      New_Reference_To (RTE (RE_Integer_Address), Loc),
+                      New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                     Attribute_Name => Name_Alignment)));
          end;
 
@@ -4150,7 +4152,7 @@ package body Exp_Disp is
 
          if RTE_Record_Component_Available (RE_Signature) then
             Append_To (DT_Aggr_List,
-              New_Reference_To (RTE (RE_Secondary_DT), Loc));
+              New_Occurrence_Of (RTE (RE_Secondary_DT), Loc));
          end if;
 
          --  Tag_Kind
@@ -4163,7 +4165,7 @@ package body Exp_Disp is
 
          Append_To (DT_Aggr_List,
            Make_Attribute_Reference (Loc,
-             Prefix => New_Reference_To (Predef_Prims, Loc),
+             Prefix => New_Occurrence_Of (Predef_Prims, Loc),
              Attribute_Name => Name_Address));
 
          --  Note: The correct value of Offset_To_Top will be set by the init
@@ -4186,7 +4188,7 @@ package body Exp_Disp is
             --  No OSD table required
 
             Append_To (DT_Aggr_List,
-              New_Reference_To (RTE (RE_Null_Address), Loc));
+              New_Occurrence_Of (RTE (RE_Null_Address), Loc));
 
          else
             OSD_Aggr_List := New_List;
@@ -4249,7 +4251,7 @@ package body Exp_Disp is
                 Object_Definition   =>
                   Make_Subtype_Indication (Loc,
                     Subtype_Mark =>
-                      New_Reference_To (RTE (RE_Object_Specific_Data), Loc),
+                      New_Occurrence_Of (RTE (RE_Object_Specific_Data), Loc),
                     Constraint =>
                       Make_Index_Or_Discriminant_Constraint (Loc,
                         Constraints => New_List (
@@ -4274,12 +4276,12 @@ package body Exp_Disp is
 
             Append_To (Result,
               Make_Attribute_Definition_Clause (Loc,
-                Name       => New_Reference_To (OSD, Loc),
+                Name       => New_Occurrence_Of (OSD, Loc),
                 Chars      => Name_Alignment,
                 Expression =>
                   Make_Attribute_Reference (Loc,
                     Prefix =>
-                      New_Reference_To (RTE (RE_Integer_Address), Loc),
+                      New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                     Attribute_Name => Name_Alignment)));
 
             --  In secondary dispatch tables the Typeinfo component contains
@@ -4287,7 +4289,7 @@ package body Exp_Disp is
 
             Append_To (DT_Aggr_List,
               Make_Attribute_Reference (Loc,
-                Prefix => New_Reference_To (OSD, Loc),
+                Prefix => New_Occurrence_Of (OSD, Loc),
                 Attribute_Name => Name_Address));
          end if;
 
@@ -4372,7 +4374,7 @@ package body Exp_Disp is
                      New_Node :=
                        Unchecked_Convert_To (RTE (RE_Prim_Ptr),
                          Make_Attribute_Reference (Loc,
-                           Prefix => New_Reference_To (Prim_Table (J), Loc),
+                           Prefix => New_Occurrence_Of (Prim_Table (J), Loc),
                            Attribute_Name => Name_Unrestricted_Access));
 
                   else
@@ -4406,7 +4408,7 @@ package body Exp_Disp is
 
              Object_Definition   =>
                Make_Subtype_Indication (Loc,
-                 Subtype_Mark => New_Reference_To
+                 Subtype_Mark => New_Occurrence_Of
                                    (RTE (RE_Dispatch_Table_Wrapper), Loc),
                  Constraint   => Make_Index_Or_Discriminant_Constraint (Loc,
                                    Constraints => DT_Constr_List)),
@@ -4417,13 +4419,13 @@ package body Exp_Disp is
 
          Append_To (Result,
            Make_Attribute_Definition_Clause (Loc,
-             Name       => New_Reference_To (Iface_DT, Loc),
+             Name       => New_Occurrence_Of (Iface_DT, Loc),
              Chars      => Name_Alignment,
 
              Expression =>
                Make_Attribute_Reference (Loc,
                  Prefix         =>
-                   New_Reference_To (RTE (RE_Integer_Address), Loc),
+                   New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                  Attribute_Name => Name_Alignment)));
 
          if Exporting_Table then
@@ -4443,14 +4445,14 @@ package body Exp_Disp is
                 Constant_Present    => True,
 
                 Object_Definition   =>
-                  New_Reference_To (RTE (RE_Interface_Tag), Loc),
+                  New_Occurrence_Of (RTE (RE_Interface_Tag), Loc),
 
                 Expression          =>
                   Unchecked_Convert_To (RTE (RE_Interface_Tag),
                     Make_Attribute_Reference (Loc,
                       Prefix         =>
                         Make_Selected_Component (Loc,
-                          Prefix        => New_Reference_To (Iface_DT, Loc),
+                          Prefix        => New_Occurrence_Of (Iface_DT, Loc),
                           Selector_Name =>
                             New_Occurrence_Of
                               (RTE_Record_Component (RE_Prims_Ptr), Loc)),
@@ -4463,13 +4465,13 @@ package body Exp_Disp is
              Constant_Present    => True,
 
              Object_Definition   =>
-               New_Reference_To (RTE (RE_Address), Loc),
+               New_Occurrence_Of (RTE (RE_Address), Loc),
 
              Expression          =>
                Make_Attribute_Reference (Loc,
                  Prefix         =>
                    Make_Selected_Component (Loc,
-                     Prefix        => New_Reference_To (Iface_DT, Loc),
+                     Prefix        => New_Occurrence_Of (Iface_DT, Loc),
                      Selector_Name =>
                        New_Occurrence_Of
                          (RTE_Record_Component (RE_Predef_Prims), Loc)),
@@ -4570,11 +4572,11 @@ package body Exp_Disp is
            Make_Object_Declaration (Loc,
              Defining_Identifier => Node (First_Elmt
                                            (Access_Disp_Table (Typ))),
-             Object_Definition   => New_Reference_To (RTE (RE_Tag), Loc),
+             Object_Definition   => New_Occurrence_Of (RTE (RE_Tag), Loc),
              Constant_Present    => True,
              Expression =>
                Unchecked_Convert_To (RTE (RE_Tag),
-                 New_Reference_To (RTE (RE_Null_Address), Loc))));
+                 New_Occurrence_Of (RTE (RE_Null_Address), Loc))));
 
          Analyze_List (Result, Suppress => All_Checks);
          Error_Msg_CRT ("tagged types", Typ);
@@ -4754,30 +4756,30 @@ package body Exp_Disp is
                 Aliased_Present     => True,
                 Constant_Present    => False,
                 Object_Definition   =>
-                  New_Reference_To
+                  New_Occurrence_Of
                     (RTE (RE_No_Dispatch_Table_Wrapper), Loc)));
 
             Append_To (Result,
               Make_Attribute_Definition_Clause (Loc,
-                Name       => New_Reference_To (DT, Loc),
+                Name       => New_Occurrence_Of (DT, Loc),
                 Chars      => Name_Alignment,
                 Expression =>
                   Make_Attribute_Reference (Loc,
                     Prefix =>
-                      New_Reference_To (RTE (RE_Integer_Address), Loc),
+                      New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                     Attribute_Name => Name_Alignment)));
 
             Append_To (Result,
               Make_Object_Declaration (Loc,
                 Defining_Identifier => DT_Ptr,
-                Object_Definition   => New_Reference_To (RTE (RE_Tag), Loc),
+                Object_Definition   => New_Occurrence_Of (RTE (RE_Tag), Loc),
                 Constant_Present    => True,
                 Expression =>
                   Unchecked_Convert_To (RTE (RE_Tag),
                     Make_Attribute_Reference (Loc,
                       Prefix =>
                         Make_Selected_Component (Loc,
-                          Prefix => New_Reference_To (DT, Loc),
+                          Prefix => New_Occurrence_Of (DT, Loc),
                         Selector_Name =>
                           New_Occurrence_Of
                             (RTE_Record_Component (RE_NDT_Prims_Ptr), Loc)),
@@ -4821,31 +4823,31 @@ package body Exp_Disp is
                 Object_Definition   =>
                   Make_Subtype_Indication (Loc,
                     Subtype_Mark =>
-                      New_Reference_To (RTE (RE_Dispatch_Table_Wrapper), Loc),
+                      New_Occurrence_Of (RTE (RE_Dispatch_Table_Wrapper), Loc),
                     Constraint => Make_Index_Or_Discriminant_Constraint (Loc,
                                     Constraints => DT_Constr_List))));
 
             Append_To (Result,
               Make_Attribute_Definition_Clause (Loc,
-                Name       => New_Reference_To (DT, Loc),
+                Name       => New_Occurrence_Of (DT, Loc),
                 Chars      => Name_Alignment,
                 Expression =>
                   Make_Attribute_Reference (Loc,
                     Prefix =>
-                      New_Reference_To (RTE (RE_Integer_Address), Loc),
+                      New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                     Attribute_Name => Name_Alignment)));
 
             Append_To (Result,
               Make_Object_Declaration (Loc,
                 Defining_Identifier => DT_Ptr,
-                Object_Definition   => New_Reference_To (RTE (RE_Tag), Loc),
+                Object_Definition   => New_Occurrence_Of (RTE (RE_Tag), Loc),
                 Constant_Present    => True,
                 Expression =>
                   Unchecked_Convert_To (RTE (RE_Tag),
                     Make_Attribute_Reference (Loc,
                       Prefix =>
                         Make_Selected_Component (Loc,
-                          Prefix => New_Reference_To (DT, Loc),
+                          Prefix => New_Occurrence_Of (DT, Loc),
                         Selector_Name =>
                           New_Occurrence_Of
                             (RTE_Record_Component (RE_Prims_Ptr), Loc)),
@@ -4869,13 +4871,13 @@ package body Exp_Disp is
                 Defining_Identifier =>
                   Node (Next_Elmt (First_Elmt (Access_Disp_Table (Typ)))),
                 Constant_Present    => True,
-                Object_Definition   => New_Reference_To
+                Object_Definition   => New_Occurrence_Of
                                             (RTE (RE_Address), Loc),
                 Expression =>
                   Make_Attribute_Reference (Loc,
                     Prefix =>
                       Make_Selected_Component (Loc,
-                        Prefix => New_Reference_To (DT, Loc),
+                        Prefix => New_Occurrence_Of (DT, Loc),
                       Selector_Name =>
                         New_Occurrence_Of
                           (RTE_Record_Component (RE_Predef_Prims), Loc)),
@@ -4891,7 +4893,7 @@ package body Exp_Disp is
         Make_Object_Declaration (Loc,
           Defining_Identifier => Exname,
           Constant_Present    => True,
-          Object_Definition   => New_Reference_To (Standard_String, Loc),
+          Object_Definition   => New_Occurrence_Of (Standard_String, Loc),
           Expression =>
             Make_String_Literal (Loc,
               Fully_Qualified_Name_String (First_Subtype (Typ)))));
@@ -4905,7 +4907,7 @@ package body Exp_Disp is
          Append_To (Result,
            Make_Object_Declaration (Loc,
              Defining_Identifier => HT_Link,
-             Object_Definition   => New_Reference_To (RTE (RE_Tag), Loc)));
+             Object_Definition   => New_Occurrence_Of (RTE (RE_Tag), Loc)));
       end if;
 
       --  Generate code to create the storage for the type specific data object
@@ -4978,7 +4980,7 @@ package body Exp_Disp is
       else
          Append_To (TSD_Aggr_List,
            Make_Attribute_Reference (Loc,
-             Prefix => New_Reference_To (Typ, Loc),
+             Prefix => New_Occurrence_Of (Typ, Loc),
              Attribute_Name => Name_Alignment));
       end if;
 
@@ -4987,7 +4989,7 @@ package body Exp_Disp is
       Append_To (TSD_Aggr_List,
         Unchecked_Convert_To (RTE (RE_Cstring_Ptr),
           Make_Attribute_Reference (Loc,
-            Prefix         => New_Reference_To (Exname, Loc),
+            Prefix         => New_Occurrence_Of (Exname, Loc),
             Attribute_Name => Name_Address)));
 
       --  External_Tag of a local tagged type
@@ -5055,7 +5057,7 @@ package body Exp_Disp is
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => Exname,
                    Constant_Present    => True,
-                   Object_Definition   => New_Reference_To
+                   Object_Definition   => New_Occurrence_Of
                                             (Standard_String, Loc),
                    Expression =>
                      Make_Op_Concat (Loc,
@@ -5066,11 +5068,11 @@ package body Exp_Disp is
                            Left_Opnd =>
                              Make_Function_Call (Loc,
                                Name =>
-                                 New_Reference_To
+                                 New_Occurrence_Of
                                    (RTE (RE_Address_Image), Loc),
                                Parameter_Associations => New_List (
                                  Unchecked_Convert_To (RTE (RE_Address),
-                                   New_Reference_To (DT_Ptr, Loc)))),
+                                   New_Occurrence_Of (DT_Ptr, Loc)))),
                            Right_Opnd =>
                              Make_String_Literal (Loc, Str2_Id)))));
 
@@ -5079,7 +5081,7 @@ package body Exp_Disp is
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => Exname,
                    Constant_Present    => True,
-                   Object_Definition   => New_Reference_To
+                   Object_Definition   => New_Occurrence_Of
                                             (Standard_String, Loc),
                    Expression =>
                      Make_Op_Concat (Loc,
@@ -5092,7 +5094,7 @@ package body Exp_Disp is
             New_Node :=
               Unchecked_Convert_To (RTE (RE_Cstring_Ptr),
                 Make_Attribute_Reference (Loc,
-                  Prefix => New_Reference_To (Exname, Loc),
+                  Prefix => New_Occurrence_Of (Exname, Loc),
                   Attribute_Name => Name_Address));
          end;
 
@@ -5121,7 +5123,7 @@ package body Exp_Disp is
                New_Node :=
                  Unchecked_Convert_To (RTE (RE_Cstring_Ptr),
                    Make_Attribute_Reference (Loc,
-                     Prefix         => New_Reference_To (Exname, Loc),
+                     Prefix         => New_Occurrence_Of (Exname, Loc),
                      Attribute_Name => Name_Address));
             else
                Old_Val := Strval (Expr_Value_S (Expression (Def)));
@@ -5154,14 +5156,14 @@ package body Exp_Disp is
                    Defining_Identifier => E,
                    Constant_Present    => True,
                    Object_Definition   =>
-                     New_Reference_To (Standard_String, Loc),
+                     New_Occurrence_Of (Standard_String, Loc),
                    Expression          =>
                      Make_String_Literal (Loc, New_Val)));
 
                New_Node :=
                  Unchecked_Convert_To (RTE (RE_Cstring_Ptr),
                    Make_Attribute_Reference (Loc,
-                     Prefix => New_Reference_To (E, Loc),
+                     Prefix => New_Occurrence_Of (E, Loc),
                      Attribute_Name => Name_Address));
             end if;
          end;
@@ -5175,12 +5177,12 @@ package body Exp_Disp is
          Append_To (TSD_Aggr_List,
            Unchecked_Convert_To (RTE (RE_Tag_Ptr),
              Make_Attribute_Reference (Loc,
-               Prefix => New_Reference_To (HT_Link, Loc),
+               Prefix => New_Occurrence_Of (HT_Link, Loc),
                Attribute_Name => Name_Address)));
       else
          Append_To (TSD_Aggr_List,
            Unchecked_Convert_To (RTE (RE_Tag_Ptr),
-             New_Reference_To (RTE (RE_Null_Address), Loc)));
+             New_Occurrence_Of (RTE (RE_Null_Address), Loc)));
       end if;
 
       --  Transportable: Set for types that can be used in remote calls
@@ -5244,7 +5246,7 @@ package body Exp_Disp is
          if not Building_Static_DT (Typ) or else not Has_DT (Typ) then
             Append_To (TSD_Aggr_List,
               Unchecked_Convert_To (RTE (RE_Size_Ptr),
-                New_Reference_To (RTE (RE_Null_Address), Loc)));
+                New_Occurrence_Of (RTE (RE_Null_Address), Loc)));
 
          else
             declare
@@ -5263,12 +5265,12 @@ package body Exp_Disp is
                      if Is_Abstract_Subprogram (Prim) then
                         Size_Comp :=
                           Unchecked_Convert_To (RTE (RE_Size_Ptr),
-                            New_Reference_To (RTE (RE_Null_Address), Loc));
+                            New_Occurrence_Of (RTE (RE_Null_Address), Loc));
                      else
                         Size_Comp :=
                           Unchecked_Convert_To (RTE (RE_Size_Ptr),
                             Make_Attribute_Reference (Loc,
-                              Prefix => New_Reference_To (Prim, Loc),
+                              Prefix => New_Occurrence_Of (Prim, Loc),
                               Attribute_Name => Name_Unrestricted_Access));
                      end if;
 
@@ -5314,7 +5316,7 @@ package body Exp_Disp is
                while Present (AI) loop
                   if Is_Ancestor (Node (AI), Typ, Use_Full_View => True) then
                      Sec_DT_Tag :=
-                       New_Reference_To (DT_Ptr, Loc);
+                       New_Occurrence_Of (DT_Ptr, Loc);
                   else
                      Elmt :=
                        Next_Elmt
@@ -5340,7 +5342,7 @@ package body Exp_Disp is
                        and then not
                          Has_Thunks (Node (Next_Elmt (Next_Elmt (Elmt)))));
                      Sec_DT_Tag :=
-                       New_Reference_To (Node (Next_Elmt (Next_Elmt (Elmt))),
+                       New_Occurrence_Of (Node (Next_Elmt (Next_Elmt (Elmt))),
                                          Loc);
                   end if;
 
@@ -5351,13 +5353,13 @@ package body Exp_Disp is
                         --  Iface_Tag
 
                         Unchecked_Convert_To (RTE (RE_Tag),
-                          New_Reference_To
+                          New_Occurrence_Of
                             (Node (First_Elmt (Access_Disp_Table (Node (AI)))),
                              Loc)),
 
                         --  Static_Offset_To_Top
 
-                        New_Reference_To (Standard_True, Loc),
+                        New_Occurrence_Of (Standard_True, Loc),
 
                         --  Offset_To_Top_Value
 
@@ -5395,7 +5397,7 @@ package body Exp_Disp is
                    Object_Definition   =>
                      Make_Subtype_Indication (Loc,
                        Subtype_Mark =>
-                         New_Reference_To (RTE (RE_Interface_Data), Loc),
+                         New_Occurrence_Of (RTE (RE_Interface_Data), Loc),
                        Constraint => Make_Index_Or_Discriminant_Constraint
                          (Loc,
                           Constraints => New_List (
@@ -5409,17 +5411,17 @@ package body Exp_Disp is
 
                Append_To (Result,
                  Make_Attribute_Definition_Clause (Loc,
-                   Name       => New_Reference_To (ITable, Loc),
+                   Name       => New_Occurrence_Of (ITable, Loc),
                    Chars      => Name_Alignment,
                    Expression =>
                      Make_Attribute_Reference (Loc,
                        Prefix =>
-                         New_Reference_To (RTE (RE_Integer_Address), Loc),
+                         New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                        Attribute_Name => Name_Alignment)));
 
                Iface_Table_Node :=
                  Make_Attribute_Reference (Loc,
-                   Prefix         => New_Reference_To (ITable, Loc),
+                   Prefix         => New_Occurrence_Of (ITable, Loc),
                    Attribute_Name => Name_Unchecked_Access);
             end;
          end if;
@@ -5448,7 +5450,7 @@ package body Exp_Disp is
                 Aliased_Present     => True,
                 Object_Definition   =>
                   Make_Subtype_Indication (Loc,
-                    Subtype_Mark => New_Reference_To (
+                    Subtype_Mark => New_Occurrence_Of (
                       RTE (RE_Select_Specific_Data), Loc),
                     Constraint   =>
                       Make_Index_Or_Discriminant_Constraint (Loc,
@@ -5457,12 +5459,12 @@ package body Exp_Disp is
 
             Append_To (Result,
               Make_Attribute_Definition_Clause (Loc,
-                Name       => New_Reference_To (SSD, Loc),
+                Name       => New_Occurrence_Of (SSD, Loc),
                 Chars      => Name_Alignment,
                 Expression =>
                   Make_Attribute_Reference (Loc,
                     Prefix =>
-                      New_Reference_To (RTE (RE_Integer_Address), Loc),
+                      New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                     Attribute_Name => Name_Alignment)));
 
             --  This table is initialized by Make_Select_Specific_Data_Table,
@@ -5470,7 +5472,7 @@ package body Exp_Disp is
 
             Append_To (TSD_Aggr_List,
               Make_Attribute_Reference (Loc,
-                Prefix => New_Reference_To (SSD, Loc),
+                Prefix => New_Occurrence_Of (SSD, Loc),
                 Attribute_Name => Name_Unchecked_Access));
          else
             Append_To (TSD_Aggr_List, Make_Null (Loc));
@@ -5491,13 +5493,13 @@ package body Exp_Disp is
       then
          Append_To (TSD_Tags_List,
            Unchecked_Convert_To (RTE (RE_Tag),
-             New_Reference_To (RTE (RE_Null_Address), Loc)));
+             New_Occurrence_Of (RTE (RE_Null_Address), Loc)));
 
       --  Otherwise we can safely reference the tag
 
       else
          Append_To (TSD_Tags_List,
-           New_Reference_To (DT_Ptr, Loc));
+           New_Occurrence_Of (DT_Ptr, Loc));
       end if;
 
       --  Fill the rest of the table with the tags of the ancestors
@@ -5527,10 +5529,10 @@ package body Exp_Disp is
 
                Append_To (TSD_Tags_List,
                  Unchecked_Convert_To (RTE (RE_Tag),
-                   New_Reference_To (RTE (RE_Null_Address), Loc)));
+                   New_Occurrence_Of (RTE (RE_Null_Address), Loc)));
             else
                Append_To (TSD_Tags_List,
-                 New_Reference_To
+                 New_Occurrence_Of
                    (Node (First_Elmt (Access_Disp_Table (Parent_Typ))),
                     Loc));
             end if;
@@ -5555,7 +5557,7 @@ package body Exp_Disp is
           Constant_Present    => Building_Static_DT (Typ),
           Object_Definition   =>
             Make_Subtype_Indication (Loc,
-              Subtype_Mark => New_Reference_To (
+              Subtype_Mark => New_Occurrence_Of (
                 RTE (RE_Type_Specific_Data), Loc),
               Constraint =>
                 Make_Index_Or_Discriminant_Constraint (Loc,
@@ -5569,11 +5571,11 @@ package body Exp_Disp is
 
       Append_To (Result,
         Make_Attribute_Definition_Clause (Loc,
-          Name       => New_Reference_To (TSD, Loc),
+          Name       => New_Occurrence_Of (TSD, Loc),
           Chars      => Name_Alignment,
           Expression =>
             Make_Attribute_Reference (Loc,
-              Prefix => New_Reference_To (RTE (RE_Integer_Address), Loc),
+              Prefix => New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
               Attribute_Name => Name_Alignment)));
 
       --  Initialize or declare the dispatch table object
@@ -5586,7 +5588,7 @@ package body Exp_Disp is
 
          New_Node :=
            Make_Attribute_Reference (Loc,
-             Prefix => New_Reference_To (TSD, Loc),
+             Prefix => New_Occurrence_Of (TSD, Loc),
              Attribute_Name => Name_Address);
 
          Append_To (DT_Constr_List, New_Node);
@@ -5602,7 +5604,7 @@ package body Exp_Disp is
          if not Building_Static_DT (Typ) then
             Append_To (Result,
               Make_Assignment_Statement (Loc,
-                Name => New_Reference_To (DT, Loc),
+                Name => New_Occurrence_Of (DT, Loc),
                 Expression => Make_Aggregate (Loc,
                   Expressions => DT_Aggr_List)));
 
@@ -5623,18 +5625,18 @@ package body Exp_Disp is
                 Aliased_Present     => True,
                 Constant_Present    => True,
                 Object_Definition   =>
-                  New_Reference_To (RTE (RE_No_Dispatch_Table_Wrapper), Loc),
+                  New_Occurrence_Of (RTE (RE_No_Dispatch_Table_Wrapper), Loc),
                 Expression => Make_Aggregate (Loc,
                   Expressions => DT_Aggr_List)));
 
             Append_To (Result,
               Make_Attribute_Definition_Clause (Loc,
-                Name       => New_Reference_To (DT, Loc),
+                Name       => New_Occurrence_Of (DT, Loc),
                 Chars      => Name_Alignment,
                 Expression =>
                   Make_Attribute_Reference (Loc,
                     Prefix =>
-                      New_Reference_To (RTE (RE_Integer_Address), Loc),
+                      New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                     Attribute_Name => Name_Alignment)));
 
             Export_DT (Typ, DT);
@@ -5726,7 +5728,7 @@ package body Exp_Disp is
                      New_Node :=
                        Unchecked_Convert_To (RTE (RE_Prim_Ptr),
                          Make_Attribute_Reference (Loc,
-                           Prefix => New_Reference_To (Prim_Table (J), Loc),
+                           Prefix => New_Occurrence_Of (Prim_Table (J), Loc),
                            Attribute_Name => Name_Unrestricted_Access));
                   else
                      New_Node := Make_Null (Loc);
@@ -5743,7 +5745,7 @@ package body Exp_Disp is
                  Make_Subtype_Declaration (Loc,
                    Defining_Identifier => Make_Temporary (Loc, 'S'),
                    Subtype_Indication  =>
-                     New_Reference_To (RTE (RE_Address_Array), Loc));
+                     New_Occurrence_Of (RTE (RE_Address_Array), Loc));
 
                Append_To (Result, Decl);
 
@@ -5752,7 +5754,7 @@ package body Exp_Disp is
                    Defining_Identifier => Predef_Prims,
                    Aliased_Present     => True,
                    Constant_Present    => Building_Static_DT (Typ),
-                   Object_Definition   => New_Reference_To
+                   Object_Definition   => New_Occurrence_Of
                                            (Defining_Identifier (Decl), Loc),
                    Expression => New_Node));
 
@@ -5762,12 +5764,12 @@ package body Exp_Disp is
 
                Append_To (Result,
                  Make_Attribute_Definition_Clause (Loc,
-                   Name       => New_Reference_To (Predef_Prims, Loc),
+                   Name       => New_Occurrence_Of (Predef_Prims, Loc),
                    Chars      => Name_Alignment,
                    Expression =>
                      Make_Attribute_Reference (Loc,
                        Prefix =>
-                         New_Reference_To (RTE (RE_Integer_Address), Loc),
+                         New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                        Attribute_Name => Name_Alignment)));
             end;
          end;
@@ -5793,7 +5795,7 @@ package body Exp_Disp is
 
          if RTE_Record_Component_Available (RE_Signature) then
             Append_To (DT_Aggr_List,
-              New_Reference_To (RTE (RE_Primary_DT), Loc));
+              New_Occurrence_Of (RTE (RE_Primary_DT), Loc));
          end if;
 
          --  Tag_Kind
@@ -5806,7 +5808,7 @@ package body Exp_Disp is
 
          Append_To (DT_Aggr_List,
            Make_Attribute_Reference (Loc,
-             Prefix => New_Reference_To (Predef_Prims, Loc),
+             Prefix => New_Occurrence_Of (Predef_Prims, Loc),
              Attribute_Name => Name_Address));
 
          --  Offset_To_Top
@@ -5817,7 +5819,7 @@ package body Exp_Disp is
 
          Append_To (DT_Aggr_List,
            Make_Attribute_Reference (Loc,
-             Prefix => New_Reference_To (TSD, Loc),
+             Prefix => New_Occurrence_Of (TSD, Loc),
              Attribute_Name => Name_Address));
 
          --  Stage 2: Initialize the table of user-defined primitive operations
@@ -5884,7 +5886,7 @@ package body Exp_Disp is
                      New_Node :=
                        Unchecked_Convert_To (RTE (RE_Prim_Ptr),
                          Make_Attribute_Reference (Loc,
-                           Prefix => New_Reference_To (Prim_Table (J), Loc),
+                           Prefix => New_Occurrence_Of (Prim_Table (J), Loc),
                            Attribute_Name => Name_Unrestricted_Access));
                   else
                      New_Node := Make_Null (Loc);
@@ -5912,7 +5914,7 @@ package body Exp_Disp is
          if not Building_Static_DT (Typ) then
             Append_To (Result,
               Make_Assignment_Statement (Loc,
-                Name => New_Reference_To (DT, Loc),
+                Name => New_Occurrence_Of (DT, Loc),
                 Expression => Make_Aggregate (Loc,
                   Expressions => DT_Aggr_List)));
 
@@ -5927,7 +5929,7 @@ package body Exp_Disp is
                 Constant_Present    => True,
                 Object_Definition   =>
                   Make_Subtype_Indication (Loc,
-                    Subtype_Mark => New_Reference_To
+                    Subtype_Mark => New_Occurrence_Of
                                       (RTE (RE_Dispatch_Table_Wrapper), Loc),
                     Constraint   => Make_Index_Or_Discriminant_Constraint (Loc,
                                       Constraints => DT_Constr_List)),
@@ -5936,12 +5938,12 @@ package body Exp_Disp is
 
             Append_To (Result,
               Make_Attribute_Definition_Clause (Loc,
-                Name       => New_Reference_To (DT, Loc),
+                Name       => New_Occurrence_Of (DT, Loc),
                 Chars      => Name_Alignment,
                 Expression =>
                   Make_Attribute_Reference (Loc,
                     Prefix =>
-                      New_Reference_To (RTE (RE_Integer_Address), Loc),
+                      New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                     Attribute_Name => Name_Alignment)));
 
             Export_DT (Typ, DT);
@@ -5962,15 +5964,15 @@ package body Exp_Disp is
                  Prefix =>
                    Make_Selected_Component (Loc,
                      Prefix =>
-                       New_Reference_To (TSD, Loc),
+                       New_Occurrence_Of (TSD, Loc),
                      Selector_Name =>
-                       New_Reference_To
+                       New_Occurrence_Of
                          (RTE_Record_Component (RE_Tags_Table), Loc)),
                  Expressions =>
                     New_List (Make_Integer_Literal (Loc, 0))),
 
              Expression =>
-               New_Reference_To
+               New_Occurrence_Of
                  (Node (First_Elmt (Access_Disp_Table (Typ))), Loc)));
       end if;
 
@@ -6010,13 +6012,13 @@ package body Exp_Disp is
                   Append_To (Elab_Code,
                     Build_Inherit_Predefined_Prims (Loc,
                       Old_Tag_Node =>
-                        New_Reference_To
+                        New_Occurrence_Of
                           (Node
                            (Next_Elmt
                             (First_Elmt
                              (Access_Disp_Table (Parent_Typ)))), Loc),
                       New_Tag_Node =>
-                        New_Reference_To
+                        New_Occurrence_Of
                           (Node
                            (Next_Elmt
                             (First_Elmt
@@ -6027,11 +6029,11 @@ package body Exp_Disp is
                        Build_Inherit_Prims (Loc,
                          Typ          => Typ,
                          Old_Tag_Node =>
-                           New_Reference_To
+                           New_Occurrence_Of
                              (Node
                               (First_Elmt
                                (Access_Disp_Table (Parent_Typ))), Loc),
-                         New_Tag_Node => New_Reference_To (DT_Ptr, Loc),
+                         New_Tag_Node => New_Occurrence_Of (DT_Ptr, Loc),
                          Num_Prims    => Nb_Prims));
                   end if;
                end;
@@ -6100,13 +6102,13 @@ package body Exp_Disp is
                                       Build_Inherit_Predefined_Prims (Loc,
                                         Old_Tag_Node =>
                                           Unchecked_Convert_To (RTE (RE_Tag),
-                                            New_Reference_To
+                                            New_Occurrence_Of
                                               (Node
                                                 (Next_Elmt (Sec_DT_Ancestor)),
                                                Loc)),
                                         New_Tag_Node =>
                                           Unchecked_Convert_To (RTE (RE_Tag),
-                                            New_Reference_To
+                                            New_Occurrence_Of
                                               (Node (Next_Elmt (Sec_DT_Typ)),
                                                Loc))));
 
@@ -6117,13 +6119,13 @@ package body Exp_Disp is
                                            Old_Tag_Node =>
                                              Unchecked_Convert_To
                                                (RTE (RE_Tag),
-                                                New_Reference_To
+                                                New_Occurrence_Of
                                                   (Node (Sec_DT_Ancestor),
                                                    Loc)),
                                            New_Tag_Node =>
                                              Unchecked_Convert_To
                                               (RTE (RE_Tag),
-                                               New_Reference_To
+                                               New_Occurrence_Of
                                                  (Node (Sec_DT_Typ), Loc)),
                                            Num_Prims    => Num_Prims));
                                     end if;
@@ -6146,13 +6148,13 @@ package body Exp_Disp is
                                       Build_Inherit_Predefined_Prims (Loc,
                                         Old_Tag_Node =>
                                           Unchecked_Convert_To (RTE (RE_Tag),
-                                             New_Reference_To
+                                             New_Occurrence_Of
                                                (Node
                                                  (Next_Elmt (Sec_DT_Ancestor)),
                                                 Loc)),
                                         New_Tag_Node =>
                                           Unchecked_Convert_To (RTE (RE_Tag),
-                                            New_Reference_To
+                                            New_Occurrence_Of
                                               (Node (Next_Elmt (Sec_DT_Typ)),
                                                Loc))));
 
@@ -6163,13 +6165,13 @@ package body Exp_Disp is
                                            Old_Tag_Node =>
                                              Unchecked_Convert_To
                                                (RTE (RE_Tag),
-                                                New_Reference_To
+                                                New_Occurrence_Of
                                                   (Node (Sec_DT_Ancestor),
                                                    Loc)),
                                            New_Tag_Node =>
                                              Unchecked_Convert_To
                                               (RTE (RE_Tag),
-                                               New_Reference_To
+                                               New_Occurrence_Of
                                                  (Node (Sec_DT_Typ), Loc)),
                                            Num_Prims    => Num_Prims));
                                     end if;
@@ -6233,10 +6235,10 @@ package body Exp_Disp is
       then
          Append_To (Elab_Code,
            Make_Procedure_Call_Statement (Loc,
-             Name => New_Reference_To (RTE (RE_Check_TSD), Loc),
+             Name => New_Occurrence_Of (RTE (RE_Check_TSD), Loc),
              Parameter_Associations => New_List (
                Make_Attribute_Reference (Loc,
-                 Prefix => New_Reference_To (TSD, Loc),
+                 Prefix => New_Occurrence_Of (TSD, Loc),
                  Attribute_Name => Name_Unchecked_Access))));
       end if;
 
@@ -6258,9 +6260,9 @@ package body Exp_Disp is
       then
          Append_To (Elab_Code,
            Make_Procedure_Call_Statement (Loc,
-             Name => New_Reference_To (RTE (RE_Register_Tag), Loc),
+             Name => New_Occurrence_Of (RTE (RE_Register_Tag), Loc),
              Parameter_Associations =>
-               New_List (New_Reference_To (DT_Ptr, Loc))));
+               New_List (New_Occurrence_Of (DT_Ptr, Loc))));
       end if;
 
       if not Is_Empty_List (Elab_Code) then
@@ -6467,7 +6469,7 @@ package body Exp_Disp is
                 Object_Definition   =>
                   Make_Subtype_Indication (Loc,
                     Subtype_Mark =>
-                      New_Reference_To (RTE (RE_Object_Specific_Data), Loc),
+                      New_Occurrence_Of (RTE (RE_Object_Specific_Data), Loc),
                     Constraint =>
                       Make_Index_Or_Discriminant_Constraint (Loc,
                         Constraints => New_List (
@@ -6492,7 +6494,7 @@ package body Exp_Disp is
 
             return
               Make_Attribute_Reference (Loc,
-                Prefix => New_Reference_To (OSD, Loc),
+                Prefix => New_Occurrence_Of (OSD, Loc),
                 Attribute_Name => Name_Unchecked_Access);
          end if;
       end Make_OSD;
@@ -6590,7 +6592,7 @@ package body Exp_Disp is
       else
          Append_To (TSD_Aggr_List,
            Make_Attribute_Reference (Loc,
-             Prefix         => New_Reference_To (Typ, Loc),
+             Prefix         => New_Occurrence_Of (Typ, Loc),
              Attribute_Name => Name_Alignment));
       end if;
 
@@ -6661,7 +6663,7 @@ package body Exp_Disp is
                          --  Iface_Tag
 
                          Make_Attribute_Reference (Loc,
-                           Prefix         => New_Reference_To (Iface, Loc),
+                           Prefix         => New_Occurrence_Of (Iface, Loc),
                            Attribute_Name => Name_Tag),
 
                          --  OSD
@@ -6681,7 +6683,7 @@ package body Exp_Disp is
                    Object_Definition   =>
                      Make_Subtype_Indication (Loc,
                        Subtype_Mark =>
-                         New_Reference_To (RTE (RE_Interface_Data), Loc),
+                         New_Occurrence_Of (RTE (RE_Interface_Data), Loc),
                        Constraint   => Make_Index_Or_Discriminant_Constraint
                          (Loc,
                           Constraints => New_List (
@@ -6695,7 +6697,7 @@ package body Exp_Disp is
 
                Iface_Table_Node :=
                  Make_Attribute_Reference (Loc,
-                   Prefix         => New_Reference_To (ITable, Loc),
+                   Prefix         => New_Occurrence_Of (ITable, Loc),
                    Attribute_Name => Name_Unchecked_Access);
             end;
          end if;
@@ -6724,7 +6726,7 @@ package body Exp_Disp is
                 Aliased_Present     => True,
                 Object_Definition   =>
                   Make_Subtype_Indication (Loc,
-                    Subtype_Mark => New_Reference_To (
+                    Subtype_Mark => New_Occurrence_Of (
                       RTE (RE_Select_Specific_Data), Loc),
                     Constraint   =>
                       Make_Index_Or_Discriminant_Constraint (Loc,
@@ -6736,7 +6738,7 @@ package body Exp_Disp is
 
             Append_To (TSD_Aggr_List,
               Make_Attribute_Reference (Loc,
-                Prefix         => New_Reference_To (SSD, Loc),
+                Prefix         => New_Occurrence_Of (SSD, Loc),
                 Attribute_Name => Name_Unchecked_Access));
          else
             Append_To (TSD_Aggr_List, Make_Null (Loc));
@@ -6752,7 +6754,7 @@ package body Exp_Disp is
 
       Append_To (TSD_Tags_List,
         Make_Attribute_Reference (Loc,
-          Prefix         => New_Reference_To (Typ, Loc),
+          Prefix         => New_Occurrence_Of (Typ, Loc),
           Attribute_Name => Name_Tag));
 
       --  Fill the rest of the table with the tags of the ancestors
@@ -6777,7 +6779,7 @@ package body Exp_Disp is
 
             Append_To (TSD_Tags_List,
               Make_Attribute_Reference (Loc,
-                Prefix         => New_Reference_To (Parent_Typ, Loc),
+                Prefix         => New_Occurrence_Of (Parent_Typ, Loc),
                 Attribute_Name => Name_Tag));
 
             Pos := Pos + 1;
@@ -6800,7 +6802,7 @@ package body Exp_Disp is
           Constant_Present    => True,
           Object_Definition   =>
             Make_Subtype_Indication (Loc,
-              Subtype_Mark => New_Reference_To (
+              Subtype_Mark => New_Occurrence_Of (
                 RTE (RE_Type_Specific_Data), Loc),
               Constraint =>
                 Make_Index_Or_Discriminant_Constraint (Loc,
@@ -6822,10 +6824,10 @@ package body Exp_Disp is
       then
          Append_To (Result,
            Make_Procedure_Call_Statement (Loc,
-             Name => New_Reference_To (RTE (RE_Check_TSD), Loc),
+             Name => New_Occurrence_Of (RTE (RE_Check_TSD), Loc),
              Parameter_Associations => New_List (
                Make_Attribute_Reference (Loc,
-                 Prefix         => New_Reference_To (TSD, Loc),
+                 Prefix         => New_Occurrence_Of (TSD, Loc),
                  Attribute_Name => Name_Unrestricted_Access))));
       end if;
 
@@ -6834,10 +6836,10 @@ package body Exp_Disp is
 
       Append_To (Result,
         Make_Procedure_Call_Statement (Loc,
-          Name => New_Reference_To (RTE (RE_Register_TSD), Loc),
+          Name => New_Occurrence_Of (RTE (RE_Register_TSD), Loc),
           Parameter_Associations => New_List (
             Make_Attribute_Reference (Loc,
-              Prefix         => New_Reference_To (TSD, Loc),
+              Prefix         => New_Occurrence_Of (TSD, Loc),
               Attribute_Name => Name_Unrestricted_Access))));
 
       --  Populate the two auxiliary tables used for dispatching asynchronous,
@@ -6979,19 +6981,19 @@ package body Exp_Disp is
 
                if Tagged_Type_Expansion then
                   Tag_Node :=
-                    New_Reference_To
+                    New_Occurrence_Of
                      (Node (First_Elmt (Access_Disp_Table (Typ))), Loc);
 
                else
                   Tag_Node :=
                     Make_Attribute_Reference (Loc,
-                      Prefix         => New_Reference_To (Typ, Loc),
+                      Prefix         => New_Occurrence_Of (Typ, Loc),
                       Attribute_Name => Name_Tag);
                end if;
 
                Append_To (Assignments,
                  Make_Procedure_Call_Statement (Loc,
-                   Name => New_Reference_To (RTE (RE_Set_Prim_Op_Kind), Loc),
+                   Name => New_Occurrence_Of (RTE (RE_Set_Prim_Op_Kind), Loc),
                    Parameter_Associations => New_List (
                      Tag_Node,
                      Make_Integer_Literal (Loc, Prim_Pos),
@@ -7013,19 +7015,19 @@ package body Exp_Disp is
 
                   if Tagged_Type_Expansion then
                      Tag_Node :=
-                       New_Reference_To
+                       New_Occurrence_Of
                          (Node (First_Elmt (Access_Disp_Table (Typ))), Loc);
                   else
                      Tag_Node :=
                        Make_Attribute_Reference (Loc,
-                         Prefix         => New_Reference_To (Typ, Loc),
+                         Prefix         => New_Occurrence_Of (Typ, Loc),
                          Attribute_Name => Name_Tag);
                   end if;
 
                   Append_To (Assignments,
                     Make_Procedure_Call_Statement (Loc,
                       Name =>
-                        New_Reference_To (RTE (RE_Set_Entry_Index), Loc),
+                        New_Occurrence_Of (RTE (RE_Set_Entry_Index), Loc),
                       Parameter_Associations => New_List (
                         Tag_Node,
                         Make_Integer_Literal (Loc, Prim_Pos),
@@ -7107,7 +7109,8 @@ package body Exp_Disp is
                 Aliased_Present     => True,
                 Constant_Present    => True,
                 Object_Definition   =>
-                  New_Reference_To (RTE (RE_No_Dispatch_Table_Wrapper), Loc)));
+                  New_Occurrence_Of
+                    (RTE (RE_No_Dispatch_Table_Wrapper), Loc)));
 
          else
             --  Calculate the number of primitives of the dispatch table and
@@ -7135,7 +7138,7 @@ package body Exp_Disp is
                 Object_Definition   =>
                   Make_Subtype_Indication (Loc,
                     Subtype_Mark =>
-                      New_Reference_To (RTE (RE_Dispatch_Table_Wrapper), Loc),
+                      New_Occurrence_Of (RTE (RE_Dispatch_Table_Wrapper), Loc),
                     Constraint => Make_Index_Or_Discriminant_Constraint (Loc,
                                     Constraints => DT_Constr_List))));
          end if;
@@ -7194,10 +7197,10 @@ package body Exp_Disp is
             Append_To (Result,
               Make_Object_Declaration (Loc,
                 Defining_Identifier => DT_Ptr,
-                Object_Definition   => New_Reference_To (RTE (RE_Tag), Loc),
+                Object_Definition   => New_Occurrence_Of (RTE (RE_Tag), Loc),
                 Expression =>
                   Unchecked_Convert_To (RTE (RE_Tag),
-                    New_Reference_To (RTE (RE_Null_Address), Loc))));
+                    New_Occurrence_Of (RTE (RE_Null_Address), Loc))));
 
             Set_Is_Statically_Allocated (DT_Ptr,
               Is_Library_Level_Tagged_Type (Typ));
@@ -7231,13 +7234,14 @@ package body Exp_Disp is
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => DT_Ptr,
                    Constant_Present    => True,
-                   Object_Definition   => New_Reference_To (RTE (RE_Tag), Loc),
+                   Object_Definition   =>
+                     New_Occurrence_Of (RTE (RE_Tag), Loc),
                    Expression          =>
                      Unchecked_Convert_To (RTE (RE_Tag),
                        Make_Attribute_Reference (Loc,
                          Prefix         =>
                            Make_Selected_Component (Loc,
-                             Prefix        => New_Reference_To (DT, Loc),
+                             Prefix        => New_Occurrence_Of (DT, Loc),
                              Selector_Name =>
                                New_Occurrence_Of
                                  (RTE_Record_Component (RE_Prims_Ptr), Loc)),
@@ -7258,12 +7262,12 @@ package body Exp_Disp is
                    Defining_Identifier => Predef_Prims_Ptr,
                    Constant_Present    => True,
                    Object_Definition   =>
-                     New_Reference_To (RTE (RE_Address), Loc),
+                     New_Occurrence_Of (RTE (RE_Address), Loc),
                    Expression          =>
                      Make_Attribute_Reference (Loc,
                        Prefix         =>
                          Make_Selected_Component (Loc,
-                           Prefix        => New_Reference_To (DT, Loc),
+                           Prefix        => New_Occurrence_Of (DT, Loc),
                            Selector_Name =>
                              New_Occurrence_Of
                                (RTE_Record_Component (RE_Predef_Prims), Loc)),
@@ -7276,13 +7280,14 @@ package body Exp_Disp is
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => DT_Ptr,
                    Constant_Present    => True,
-                   Object_Definition   => New_Reference_To (RTE (RE_Tag), Loc),
+                   Object_Definition   =>
+                     New_Occurrence_Of (RTE (RE_Tag), Loc),
                    Expression          =>
                      Unchecked_Convert_To (RTE (RE_Tag),
                        Make_Attribute_Reference (Loc,
                          Prefix         =>
                            Make_Selected_Component (Loc,
-                             Prefix => New_Reference_To (DT, Loc),
+                             Prefix => New_Occurrence_Of (DT, Loc),
                              Selector_Name =>
                                New_Occurrence_Of
                                  (RTE_Record_Component (RE_NDT_Prims_Ptr),
@@ -7340,11 +7345,11 @@ package body Exp_Disp is
                Append_To (Result,
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => Iface_DT_Ptr,
-                   Object_Definition   => New_Reference_To
+                   Object_Definition   => New_Occurrence_Of
                                             (RTE (RE_Interface_Tag), Loc),
                    Expression =>
                      Unchecked_Convert_To (RTE (RE_Interface_Tag),
-                       New_Reference_To (RTE (RE_Null_Address), Loc))));
+                       New_Occurrence_Of (RTE (RE_Null_Address), Loc))));
 
                Set_Is_Statically_Allocated (Iface_DT_Ptr,
                  Is_Library_Level_Tagged_Type (Typ));
@@ -7394,7 +7399,7 @@ package body Exp_Disp is
                     Make_Object_Declaration (Loc,
                       Defining_Identifier => Iface_DT_Ptr,
                       Constant_Present    => True,
-                      Object_Definition   => New_Reference_To
+                      Object_Definition   => New_Occurrence_Of
                                                (RTE (RE_Interface_Tag), Loc),
                       Expression          =>
                         Unchecked_Convert_To (RTE (RE_Interface_Tag),
@@ -7402,7 +7407,7 @@ package body Exp_Disp is
                             Prefix         =>
                               Make_Selected_Component (Loc,
                                 Prefix        =>
-                                  New_Reference_To (Iface_DT, Loc),
+                                  New_Occurrence_Of (Iface_DT, Loc),
                                 Selector_Name =>
                                   New_Occurrence_Of
                                     (RTE_Record_Component (RE_Prims_Ptr),
@@ -7502,7 +7507,7 @@ package body Exp_Disp is
                     Component_Definition =>
                       Make_Component_Definition (Loc,
                         Subtype_Indication =>
-                          New_Reference_To (RTE (RE_Prim_Ptr), Loc)))));
+                          New_Occurrence_Of (RTE (RE_Prim_Ptr), Loc)))));
 
             Append_To (Result,
               Make_Full_Type_Declaration (Loc,
@@ -7645,17 +7650,17 @@ package body Exp_Disp is
          --  Protected function
 
          if Ekind (Full_Typ) = E_Protected_Type then
-            return New_Reference_To (RTE (RE_POK_Protected_Function), Loc);
+            return New_Occurrence_Of (RTE (RE_POK_Protected_Function), Loc);
 
          --  Task function
 
          elsif Ekind (Full_Typ) = E_Task_Type then
-            return New_Reference_To (RTE (RE_POK_Task_Function), Loc);
+            return New_Occurrence_Of (RTE (RE_POK_Task_Function), Loc);
 
          --  Regular function
 
          else
-            return New_Reference_To (RTE (RE_POK_Function), Loc);
+            return New_Occurrence_Of (RTE (RE_POK_Function), Loc);
          end if;
 
       else
@@ -7668,12 +7673,13 @@ package body Exp_Disp is
             if Is_Primitive_Wrapper (Prim_Op)
               and then Ekind (Wrapped_Entity (Prim_Op)) = E_Entry
             then
-               return New_Reference_To (RTE (RE_POK_Protected_Entry), Loc);
+               return New_Occurrence_Of (RTE (RE_POK_Protected_Entry), Loc);
 
             --  Protected procedure
 
             else
-               return New_Reference_To (RTE (RE_POK_Protected_Procedure), Loc);
+               return
+                 New_Occurrence_Of (RTE (RE_POK_Protected_Procedure), Loc);
             end if;
 
          elsif Ekind (Full_Typ) = E_Task_Type then
@@ -7683,19 +7689,19 @@ package body Exp_Disp is
             if Is_Primitive_Wrapper (Prim_Op)
               and then Ekind (Wrapped_Entity (Prim_Op)) = E_Entry
             then
-               return New_Reference_To (RTE (RE_POK_Task_Entry), Loc);
+               return New_Occurrence_Of (RTE (RE_POK_Task_Entry), Loc);
 
             --  Task "procedure". These are the internally Expander-generated
             --  procedures (task body for instance).
 
             else
-               return New_Reference_To (RTE (RE_POK_Task_Procedure), Loc);
+               return New_Occurrence_Of (RTE (RE_POK_Task_Procedure), Loc);
             end if;
 
          --  Regular procedure
 
          else
-            return New_Reference_To (RTE (RE_POK_Procedure), Loc);
+            return New_Occurrence_Of (RTE (RE_POK_Procedure), Loc);
          end if;
       end if;
    end Prim_Op_Kind;
@@ -7745,12 +7751,12 @@ package body Exp_Disp is
 
             Append_To (L,
               Build_Set_Predefined_Prim_Op_Address (Loc,
-                Tag_Node     => New_Reference_To (DT_Ptr, Loc),
+                Tag_Node     => New_Occurrence_Of (DT_Ptr, Loc),
                 Position     => Pos,
                 Address_Node =>
                   Unchecked_Convert_To (RTE (RE_Prim_Ptr),
                     Make_Attribute_Reference (Loc,
-                      Prefix         => New_Reference_To (Prim, Loc),
+                      Prefix         => New_Occurrence_Of (Prim, Loc),
                       Attribute_Name => Name_Unrestricted_Access))));
 
             --  Register copy of the pointer to the 'size primitive in the TSD
@@ -7761,7 +7767,7 @@ package body Exp_Disp is
                DT_Ptr := Node (First_Elmt (Access_Disp_Table (Tag_Typ)));
                Append_To (L,
                  Build_Set_Size_Function (Loc,
-                   Tag_Node  => New_Reference_To (DT_Ptr, Loc),
+                   Tag_Node  => New_Occurrence_Of (DT_Ptr, Loc),
                    Size_Func => Prim));
             end if;
 
@@ -7778,12 +7784,12 @@ package body Exp_Disp is
                Append_To (L,
                  Build_Set_Prim_Op_Address (Loc,
                    Typ          => Tag_Typ,
-                   Tag_Node     => New_Reference_To (DT_Ptr, Loc),
+                   Tag_Node     => New_Occurrence_Of (DT_Ptr, Loc),
                    Position     => Pos,
                    Address_Node =>
                      Unchecked_Convert_To (RTE (RE_Prim_Ptr),
                        Make_Attribute_Reference (Loc,
-                         Prefix         => New_Reference_To (Prim, Loc),
+                         Prefix         => New_Occurrence_Of (Prim, Loc),
                          Attribute_Name => Name_Unrestricted_Access))));
             end if;
          end if;
@@ -7842,12 +7848,12 @@ package body Exp_Disp is
                Append_To (L,
                  Build_Set_Predefined_Prim_Op_Address (Loc,
                    Tag_Node =>
-                     New_Reference_To (Node (Next_Elmt (Iface_DT_Elmt)), Loc),
+                     New_Occurrence_Of (Node (Next_Elmt (Iface_DT_Elmt)), Loc),
                    Position => Pos,
                    Address_Node =>
                      Unchecked_Convert_To (RTE (RE_Prim_Ptr),
                        Make_Attribute_Reference (Loc,
-                         Prefix          => New_Reference_To (Thunk_Id, Loc),
+                         Prefix          => New_Occurrence_Of (Thunk_Id, Loc),
                          Attribute_Name  => Name_Unrestricted_Access))));
 
                Next_Elmt (Iface_DT_Elmt);
@@ -7858,13 +7864,13 @@ package body Exp_Disp is
                Append_To (L,
                  Build_Set_Predefined_Prim_Op_Address (Loc,
                    Tag_Node =>
-                     New_Reference_To (Node (Next_Elmt (Iface_DT_Elmt)), Loc),
+                     New_Occurrence_Of (Node (Next_Elmt (Iface_DT_Elmt)), Loc),
                    Position => Pos,
                    Address_Node =>
                      Unchecked_Convert_To (RTE (RE_Prim_Ptr),
                        Make_Attribute_Reference (Loc,
                          Prefix          =>
-                           New_Reference_To (Alias (Prim), Loc),
+                           New_Occurrence_Of (Alias (Prim), Loc),
                          Attribute_Name  => Name_Unrestricted_Access))));
 
             else
@@ -7874,12 +7880,12 @@ package body Exp_Disp is
                Append_To (L,
                  Build_Set_Prim_Op_Address (Loc,
                    Typ          => Iface_Typ,
-                   Tag_Node     => New_Reference_To (Iface_DT_Ptr, Loc),
+                   Tag_Node     => New_Occurrence_Of (Iface_DT_Ptr, Loc),
                    Position     => Pos,
                    Address_Node =>
                      Unchecked_Convert_To (RTE (RE_Prim_Ptr),
                        Make_Attribute_Reference (Loc,
-                         Prefix => New_Reference_To (Thunk_Id, Loc),
+                         Prefix => New_Occurrence_Of (Thunk_Id, Loc),
                          Attribute_Name => Name_Unrestricted_Access))));
 
                Next_Elmt (Iface_DT_Elmt);
@@ -7890,13 +7896,13 @@ package body Exp_Disp is
                Append_To (L,
                  Build_Set_Prim_Op_Address (Loc,
                    Typ          => Iface_Typ,
-                   Tag_Node     => New_Reference_To (Iface_DT_Ptr, Loc),
+                   Tag_Node     => New_Occurrence_Of (Iface_DT_Ptr, Loc),
                    Position     => Pos,
                    Address_Node =>
                      Unchecked_Convert_To (RTE (RE_Prim_Ptr),
                        Make_Attribute_Reference (Loc,
                          Prefix         =>
-                           New_Reference_To (Alias (Prim), Loc),
+                           New_Occurrence_Of (Alias (Prim), Loc),
                          Attribute_Name => Name_Unrestricted_Access))));
 
             end if;
@@ -8478,7 +8484,7 @@ package body Exp_Disp is
              Make_Parameter_Specification (Loc,
                Defining_Identifier =>
                  Make_Defining_Identifier (Loc, Name_uInit),
-               Parameter_Type      => New_Reference_To (Typ, Loc)));
+               Parameter_Type      => New_Occurrence_Of (Typ, Loc)));
 
          if Present (Parameter_Specifications (Parent (E))) then
             P := First (Parameter_Specifications (Parent (E)));
@@ -8605,13 +8611,13 @@ package body Exp_Disp is
                      P := First (Parms);
                      while Present (P) loop
                         Append_To (Actuals,
-                          New_Reference_To (Defining_Identifier (P), Loc));
+                          New_Occurrence_Of (Defining_Identifier (P), Loc));
                         Next (P);
                      end loop;
 
                      Append_To (Body_Stmts,
                        Make_Procedure_Call_Statement (Loc,
-                         Name => New_Reference_To (Constructor_Id, Loc),
+                         Name => New_Occurrence_Of (Constructor_Id, Loc),
                          Parameter_Associations => Actuals));
                   end;
 
@@ -8642,13 +8648,13 @@ package body Exp_Disp is
                         Append_To (Init_Tags_List,
                           Make_Assignment_Statement (Loc,
                             Name =>
-                              New_Reference_To (Node (Tag_Elmt), Loc),
+                              New_Occurrence_Of (Node (Tag_Elmt), Loc),
                             Expression =>
                               Make_Selected_Component (Loc,
                                 Prefix        =>
                                   Make_Identifier (Loc, Name_uInit),
                                 Selector_Name =>
-                                  New_Reference_To (Tag_Comp, Loc))));
+                                  New_Occurrence_Of (Tag_Comp, Loc))));
 
                         Tag_Comp := Next_Tag_Component (Tag_Comp);
                         Next_Elmt (Tag_Elmt);
@@ -8660,12 +8666,12 @@ package body Exp_Disp is
                       Condition =>
                         Make_Op_Eq (Loc,
                           Left_Opnd =>
-                            New_Reference_To
+                            New_Occurrence_Of
                               (Node (First_Elmt (Access_Disp_Table (Typ))),
                                Loc),
                           Right_Opnd =>
                             Unchecked_Convert_To (RTE (RE_Tag),
-                              New_Reference_To (RTE (RE_Null_Address), Loc))),
+                              New_Occurrence_Of (RTE (RE_Null_Address), Loc))),
                       Then_Statements => Init_Tags_List));
 
                   IP_Body :=
@@ -8721,7 +8727,7 @@ package body Exp_Disp is
             Body_Stmts := New_List (
               Make_Procedure_Call_Statement (Loc,
                 Name                   =>
-                  New_Reference_To (Covers_Default_Constructor, Loc),
+                  New_Occurrence_Of (Covers_Default_Constructor, Loc),
                 Parameter_Associations => New_List (
                   Make_Identifier (Loc, Name_uInit))));
 
@@ -8736,7 +8742,7 @@ package body Exp_Disp is
                       Make_Parameter_Specification (Loc,
                         Defining_Identifier =>
                           Make_Defining_Identifier (Loc, Name_uInit),
-                        Parameter_Type      => New_Reference_To (Typ, Loc)))),
+                        Parameter_Type      => New_Occurrence_Of (Typ, Loc)))),
 
                 Declarations               => No_List,
 
@@ -8801,9 +8807,11 @@ package body Exp_Disp is
 
       if Is_Abstract_Type (T) then
          if Is_Limited_Record (T) then
-            return New_Reference_To (RTE (RE_TK_Abstract_Limited_Tagged), Loc);
+            return New_Occurrence_Of
+              (RTE (RE_TK_Abstract_Limited_Tagged), Loc);
          else
-            return New_Reference_To (RTE (RE_TK_Abstract_Tagged), Loc);
+            return New_Occurrence_Of
+              (RTE (RE_TK_Abstract_Tagged), Loc);
          end if;
 
       --  Concurrent kinds
@@ -8816,19 +8824,19 @@ package body Exp_Disp is
          end if;
 
          if Ekind (Conc_Typ) = E_Protected_Type then
-            return New_Reference_To (RTE (RE_TK_Protected), Loc);
+            return New_Occurrence_Of (RTE (RE_TK_Protected), Loc);
          else
             pragma Assert (Ekind (Conc_Typ) = E_Task_Type);
-            return New_Reference_To (RTE (RE_TK_Task), Loc);
+            return New_Occurrence_Of (RTE (RE_TK_Task), Loc);
          end if;
 
       --  Regular tagged kinds
 
       else
          if Is_Limited_Record (T) then
-            return New_Reference_To (RTE (RE_TK_Limited_Tagged), Loc);
+            return New_Occurrence_Of (RTE (RE_TK_Limited_Tagged), Loc);
          else
-            return New_Reference_To (RTE (RE_TK_Tagged), Loc);
+            return New_Occurrence_Of (RTE (RE_TK_Tagged), Loc);
          end if;
       end if;
    end Tagged_Kind;
index 2a62dad..1c953d6 100644 (file)
@@ -458,7 +458,7 @@ package body Exp_Imgv is
       elsif Is_Floating_Point_Type (Rtyp) then
          Append_To (Arg_List,
            Make_Attribute_Reference (Loc,
-             Prefix         => New_Reference_To (Ptyp, Loc),
+             Prefix         => New_Occurrence_Of (Ptyp, Loc),
              Attribute_Name => Name_Digits));
 
       --  For ordinary fixed-point types, append Aft parameter
@@ -466,7 +466,7 @@ package body Exp_Imgv is
       elsif Is_Ordinary_Fixed_Point_Type (Rtyp) then
          Append_To (Arg_List,
            Make_Attribute_Reference (Loc,
-             Prefix         => New_Reference_To (Ptyp, Loc),
+             Prefix         => New_Occurrence_Of (Ptyp, Loc),
              Attribute_Name => Name_Aft));
 
          if Has_Decimal_Small (Rtyp) then
@@ -479,7 +479,7 @@ package body Exp_Imgv is
       elsif Is_Decimal_Fixed_Point_Type (Rtyp) then
          Append_To (Arg_List,
            Make_Attribute_Reference (Loc,
-             Prefix         => New_Reference_To (Ptyp, Loc),
+             Prefix         => New_Occurrence_Of (Ptyp, Loc),
              Attribute_Name => Name_Scale));
 
          Set_Conversion_OK (First (Arg_List));
@@ -489,14 +489,15 @@ package body Exp_Imgv is
 
       elsif Rtyp = Standard_Wide_Character then
          Append_To (Arg_List,
-           New_Reference_To (Boolean_Literals (Ada_Version >= Ada_2005), Loc));
+           New_Occurrence_Of
+             (Boolean_Literals (Ada_Version >= Ada_2005), Loc));
       end if;
 
       --  Now append the procedure call to the insert list
 
       Append_To (Ins_List,
          Make_Procedure_Call_Statement (Loc,
-          Name                   => New_Reference_To (Proc_Ent, Loc),
+          Name                   => New_Occurrence_Of (Proc_Ent, Loc),
           Parameter_Associations => Arg_List));
 
       --  Insert declarations of Snn, Pnn, and the procedure call. We suppress
@@ -643,13 +644,13 @@ package body Exp_Imgv is
 
          Append_To (Args,
            Make_Attribute_Reference (Loc,
-             Prefix => New_Reference_To (Typ, Loc),
+             Prefix => New_Occurrence_Of (Typ, Loc),
              Attribute_Name => Name_Scale));
 
          Rewrite (N,
            OK_Convert_To (Btyp,
              Make_Function_Call (Loc,
-               Name => New_Reference_To (RTE (Vid), Loc),
+               Name => New_Occurrence_Of (RTE (Vid), Loc),
                Parameter_Associations => Args)));
 
          Set_Etype (N, Btyp);
@@ -672,7 +673,7 @@ package body Exp_Imgv is
          then
             Rewrite (N,
               Make_Attribute_Reference (Loc,
-                Prefix => New_Reference_To (Btyp, Loc),
+                Prefix => New_Occurrence_Of (Btyp, Loc),
                 Attribute_Name => Name_Val,
                 Expressions => New_List (
                   Make_Attribute_Reference (Loc,
@@ -718,12 +719,12 @@ package body Exp_Imgv is
 
             Rewrite (N,
               Make_Attribute_Reference (Loc,
-                Prefix => New_Reference_To (Typ, Loc),
+                Prefix => New_Occurrence_Of (Typ, Loc),
                 Attribute_Name => Name_Val,
                 Expressions => New_List (
                   Make_Function_Call (Loc,
                     Name =>
-                      New_Reference_To (RTE (Func), Loc),
+                      New_Occurrence_Of (RTE (Func), Loc),
                     Parameter_Associations => Args))));
 
             Analyze_And_Resolve (N, Btyp);
@@ -758,7 +759,7 @@ package body Exp_Imgv is
          Rewrite (N,
            Convert_To (Btyp,
              Make_Function_Call (Loc,
-               Name => New_Reference_To (RTE (Vid), Loc),
+               Name => New_Occurrence_Of (RTE (Vid), Loc),
                Parameter_Associations => Args)));
       end if;
 
@@ -826,15 +827,15 @@ package body Exp_Imgv is
 
          Make_Procedure_Call_Statement (Loc,
            Name =>
-             New_Reference_To (RTE (RE_String_To_Wide_String), Loc),
+             New_Occurrence_Of (RTE (RE_String_To_Wide_String), Loc),
 
            Parameter_Associations => New_List (
              Make_Attribute_Reference (Loc,
                Prefix         => Prefix (N),
                Attribute_Name => Name_Image,
                Expressions    => Expressions (N)),
-             New_Reference_To (Rnn, Loc),
-             New_Reference_To (Lnn, Loc),
+             New_Occurrence_Of (Rnn, Loc),
+             New_Occurrence_Of (Lnn, Loc),
              Make_Integer_Literal (Loc,
                Intval => Int (Wide_Character_Encoding_Method))))),
 
@@ -918,15 +919,15 @@ package body Exp_Imgv is
 
          Make_Procedure_Call_Statement (Loc,
            Name =>
-             New_Reference_To (RTE (RE_String_To_Wide_Wide_String), Loc),
+             New_Occurrence_Of (RTE (RE_String_To_Wide_Wide_String), Loc),
 
            Parameter_Associations => New_List (
              Make_Attribute_Reference (Loc,
                Prefix         => Prefix (N),
                Attribute_Name => Name_Image,
                Expressions    => Expressions (N)),
-             New_Reference_To (Rnn, Loc),
-             New_Reference_To (Lnn, Loc),
+             New_Occurrence_Of (Rnn, Loc),
+             New_Occurrence_Of (Lnn, Loc),
              Make_Integer_Literal (Loc,
                Intval => Int (Wide_Character_Encoding_Method))))),
 
@@ -1141,18 +1142,18 @@ package body Exp_Imgv is
                Make_Op_Gt (Loc,
                  Left_Opnd =>
                    Make_Attribute_Reference (Loc,
-                     Prefix => New_Reference_To (Ptyp, Loc),
+                     Prefix => New_Occurrence_Of (Ptyp, Loc),
                      Attribute_Name => Name_First),
 
                  Right_Opnd =>
                    Make_Attribute_Reference (Loc,
-                     Prefix => New_Reference_To (Ptyp, Loc),
+                     Prefix => New_Occurrence_Of (Ptyp, Loc),
                      Attribute_Name => Name_Last)),
 
                Make_Integer_Literal (Loc, 0),
 
                Make_Attribute_Reference (Loc,
-                 Prefix => New_Reference_To (Base_Type (Ptyp), Loc),
+                 Prefix => New_Occurrence_Of (Base_Type (Ptyp), Loc),
                  Attribute_Name => Name_Width))));
 
          Analyze_And_Resolve (N, Typ);
@@ -1311,27 +1312,27 @@ package body Exp_Imgv is
                Attribute_Name => Name_Address),
 
              Make_Attribute_Reference (Loc,
-               Prefix => New_Reference_To (Ptyp, Loc),
+               Prefix => New_Occurrence_Of (Ptyp, Loc),
                Attribute_Name => Name_Pos,
 
                Expressions => New_List (
                  Make_Attribute_Reference (Loc,
-                   Prefix => New_Reference_To (Ptyp, Loc),
+                   Prefix => New_Occurrence_Of (Ptyp, Loc),
                    Attribute_Name => Name_First))),
 
              Make_Attribute_Reference (Loc,
-               Prefix => New_Reference_To (Ptyp, Loc),
+               Prefix => New_Occurrence_Of (Ptyp, Loc),
                Attribute_Name => Name_Pos,
 
                Expressions => New_List (
                  Make_Attribute_Reference (Loc,
-                   Prefix => New_Reference_To (Ptyp, Loc),
+                   Prefix => New_Occurrence_Of (Ptyp, Loc),
                    Attribute_Name => Name_Last))));
 
          Rewrite (N,
            Convert_To (Typ,
              Make_Function_Call (Loc,
-               Name => New_Reference_To (RTE (XX), Loc),
+               Name => New_Occurrence_Of (RTE (XX), Loc),
                Parameter_Associations => Arglist)));
 
          Analyze_And_Resolve (N, Typ);
@@ -1343,18 +1344,18 @@ package body Exp_Imgv is
       Arglist := New_List (
         Convert_To (YY,
           Make_Attribute_Reference (Loc,
-            Prefix => New_Reference_To (Ptyp, Loc),
+            Prefix => New_Occurrence_Of (Ptyp, Loc),
             Attribute_Name => Name_First)),
 
         Convert_To (YY,
           Make_Attribute_Reference (Loc,
-            Prefix => New_Reference_To (Ptyp, Loc),
+            Prefix => New_Occurrence_Of (Ptyp, Loc),
             Attribute_Name => Name_Last)));
 
       Rewrite (N,
         Convert_To (Typ,
           Make_Function_Call (Loc,
-            Name => New_Reference_To (RTE (XX), Loc),
+            Name => New_Occurrence_Of (RTE (XX), Loc),
             Parameter_Associations => Arglist)));
 
       Analyze_And_Resolve (N, Typ);
index fa0ced2..a4a4989 100644 (file)
@@ -247,7 +247,7 @@ package body Exp_Intr is
 
             declare
                Fname : constant Node_Id :=
-                         New_Reference_To (RTE (RE_Secondary_Tag), Loc);
+                         New_Occurrence_Of (RTE (RE_Secondary_Tag), Loc);
 
             begin
                pragma Assert (not Is_Interface (Etype (Tag_Arg)));
@@ -256,13 +256,13 @@ package body Exp_Intr is
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => Make_Temporary (Loc, 'V'),
                    Object_Definition   =>
-                     New_Reference_To (RTE (RE_Tag), Loc),
+                     New_Occurrence_Of (RTE (RE_Tag), Loc),
                    Expression          =>
                      Make_Function_Call (Loc,
                        Name                   => Fname,
                        Parameter_Associations => New_List (
                          Relocate_Node (Tag_Arg),
-                         New_Reference_To
+                         New_Occurrence_Of
                            (Node (First_Elmt (Access_Disp_Table
                                                (Etype (Etype (Act_Constr))))),
                             Loc))));
@@ -324,7 +324,7 @@ package body Exp_Intr is
             Build_CW_Membership (Loc,
               Obj_Tag_Node => Obj_Tag_Node,
               Typ_Tag_Node =>
-                New_Reference_To (
+                New_Occurrence_Of (
                    Node (First_Elmt (Access_Disp_Table (
                                        Root_Type (Result_Typ)))), Loc),
               Related_Nod => N,
@@ -354,7 +354,7 @@ package body Exp_Intr is
                         Prefix         => New_Copy_Tree (Tag_Arg),
                         Attribute_Name => Name_Address),
 
-                      New_Reference_To (
+                      New_Occurrence_Of (
                         Node (First_Elmt (Access_Disp_Table (
                                             Root_Type (Result_Typ)))), Loc)))),
              Then_Statements =>
@@ -1193,7 +1193,7 @@ package body Exp_Intr is
          Set_Expression (Free_Node,
            Unchecked_Convert_To (Typ,
              Make_Function_Call (Loc,
-               Name => New_Reference_To (RTE (RE_Base_Address), Loc),
+               Name => New_Occurrence_Of (RTE (RE_Base_Address), Loc),
                Parameter_Associations => New_List (
                  Unchecked_Convert_To (RTE (RE_Address), Free_Arg)))));
 
index f477b8e..54aec71 100644 (file)
@@ -319,17 +319,17 @@ package body Exp_Prag is
            Make_Object_Declaration (Loc,
              Defining_Identifier => New_Msg,
              Constant_Present    => True,
-             Object_Definition   => New_Reference_To (Standard_String, Loc),
+             Object_Definition   => New_Occurrence_Of (Standard_String, Loc),
              Expression          =>
                Make_If_Expression (Loc,
                  Expressions => New_List (
-                   New_Reference_To (Flag, Loc),
+                   New_Occurrence_Of (Flag, Loc),
 
                    Make_Op_Concat (Loc,
-                     Left_Opnd  => New_Reference_To (Msg, Loc),
+                     Left_Opnd  => New_Occurrence_Of (Msg, Loc),
                      Right_Opnd => Make_String_Literal (Loc, End_String)),
 
-                   New_Reference_To (Msg, Loc)))));
+                   New_Occurrence_Of (Msg, Loc)))));
 
          Msg := New_Msg;
       end Case_Guard_Error;
@@ -352,7 +352,7 @@ package body Exp_Prag is
 
          Cond :=
            Make_And_Then (Loc,
-             Left_Opnd  => New_Reference_To (Flag, Loc),
+             Left_Opnd  => New_Occurrence_Of (Flag, Loc),
              Right_Opnd =>
                Make_Op_Not (Loc,
                  Right_Opnd => Relocate_Node (Conseq)));
@@ -368,7 +368,7 @@ package body Exp_Prag is
          Error :=
            Make_Procedure_Call_Statement (Loc,
              Name                   =>
-               New_Reference_To (RTE (RE_Raise_Assert_Failure), Loc),
+               New_Occurrence_Of (RTE (RE_Raise_Assert_Failure), Loc),
              Parameter_Associations => New_List (
                Make_String_Literal (Loc, End_String)));
 
@@ -399,8 +399,8 @@ package body Exp_Prag is
          return
            Make_Object_Declaration (Loc,
              Defining_Identifier => Id,
-             Object_Definition   => New_Reference_To (Standard_Boolean, Loc),
-             Expression          => New_Reference_To (Standard_False, Loc));
+             Object_Definition   => New_Occurrence_Of (Standard_Boolean, Loc),
+             Expression          => New_Occurrence_Of (Standard_False, Loc));
       end Declaration_Of;
 
       -------------------------------
@@ -444,7 +444,7 @@ package body Exp_Prag is
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => Temp,
                    Object_Definition   =>
-                     New_Reference_To (Etype (Pref), Loc));
+                     New_Occurrence_Of (Etype (Pref), Loc));
                Set_No_Initialization (Decl);
 
                Append_To (Decls, Decl);
@@ -458,7 +458,7 @@ package body Exp_Prag is
 
                Append_To (Eval_Stmts,
                  Make_Assignment_Statement (Loc,
-                   Name       => New_Reference_To (Temp, Loc),
+                   Name       => New_Occurrence_Of (Temp, Loc),
                    Expression => Pref));
 
                --  Ensure that the prefix is valid
@@ -470,7 +470,7 @@ package body Exp_Prag is
                --  Replace the original attribute 'Old by a reference to the
                --  generated temporary.
 
-               Rewrite (N, New_Reference_To (Temp, Loc));
+               Rewrite (N, New_Occurrence_Of (Temp, Loc));
             end if;
 
             return OK;
@@ -497,7 +497,7 @@ package body Exp_Prag is
          if No (Evals) then
             Evals :=
               Make_Implicit_If_Statement (CCs,
-                Condition       => New_Reference_To (Flag, Loc),
+                Condition       => New_Occurrence_Of (Flag, Loc),
                 Then_Statements => Eval_Stmts);
 
          --  Otherwise generate:
@@ -512,7 +512,7 @@ package body Exp_Prag is
 
             Append_To (Elsif_Parts (Evals),
               Make_Elsif_Part (Loc,
-                Condition       => New_Reference_To (Flag, Loc),
+                Condition       => New_Occurrence_Of (Flag, Loc),
                 Then_Statements => Eval_Stmts));
          end if;
       end Expand_Old_In_Consequence;
@@ -525,10 +525,10 @@ package body Exp_Prag is
       begin
          return
            Make_Assignment_Statement (Loc,
-             Name       => New_Reference_To (Id, Loc),
+             Name       => New_Occurrence_Of (Id, Loc),
              Expression =>
                Make_Op_Add (Loc,
-                 Left_Opnd  => New_Reference_To (Id, Loc),
+                 Left_Opnd  => New_Occurrence_Of (Id, Loc),
                  Right_Opnd => Make_Integer_Literal (Loc, 1)));
       end Increment;
 
@@ -540,8 +540,8 @@ package body Exp_Prag is
       begin
          return
            Make_Assignment_Statement (Loc,
-             Name       => New_Reference_To (Id, Loc),
-             Expression => New_Reference_To (Standard_True, Loc));
+             Name       => New_Occurrence_Of (Id, Loc),
+             Expression => New_Occurrence_Of (Standard_True, Loc));
       end Set;
 
       --  Local variables
@@ -590,7 +590,7 @@ package body Exp_Prag is
       Prepend_To (Decls,
         Make_Object_Declaration (Loc,
           Defining_Identifier => Count,
-          Object_Definition   => New_Reference_To (Standard_Natural, Loc),
+          Object_Definition   => New_Occurrence_Of (Standard_Natural, Loc),
           Expression          => Make_Integer_Literal (Loc, 0)));
 
       --  Create the base error message for multiple overlapping case guards
@@ -609,7 +609,7 @@ package body Exp_Prag is
            Make_Object_Declaration (Loc,
              Defining_Identifier => Msg_Str,
              Constant_Present    => True,
-             Object_Definition   => New_Reference_To (Standard_String, Loc),
+             Object_Definition   => New_Occurrence_Of (Standard_String, Loc),
              Expression          => Make_String_Literal (Loc, End_String)));
       end if;
 
@@ -726,7 +726,7 @@ package body Exp_Prag is
          CG_Stmts := New_List (
            Make_Procedure_Call_Statement (Loc,
              Name                   =>
-               New_Reference_To (RTE (RE_Raise_Assert_Failure), Loc),
+               New_Occurrence_Of (RTE (RE_Raise_Assert_Failure), Loc),
              Parameter_Associations => New_List (
                Make_String_Literal (Loc, End_String))));
       end if;
@@ -735,7 +735,7 @@ package body Exp_Prag is
         Make_Implicit_If_Statement (CCs,
           Condition       =>
             Make_Op_Eq (Loc,
-              Left_Opnd  => New_Reference_To (Count, Loc),
+              Left_Opnd  => New_Occurrence_Of (Count, Loc),
               Right_Opnd => Make_Integer_Literal (Loc, 0)),
           Then_Statements => CG_Stmts);
 
@@ -755,7 +755,7 @@ package body Exp_Prag is
            Make_Elsif_Part (Loc,
              Condition       =>
                Make_Op_Gt (Loc,
-                 Left_Opnd  => New_Reference_To (Count, Loc),
+                 Left_Opnd  => New_Occurrence_Of (Count, Loc),
                  Right_Opnd => Make_Integer_Literal (Loc, 1)),
 
              Then_Statements => New_List (
@@ -766,10 +766,10 @@ package body Exp_Prag is
                      Statements => New_List (
                        Make_Procedure_Call_Statement (Loc,
                          Name                   =>
-                           New_Reference_To
+                           New_Occurrence_Of
                              (RTE (RE_Raise_Assert_Failure), Loc),
                          Parameter_Associations => New_List (
-                           New_Reference_To (Msg_Str, Loc))))))))));
+                           New_Occurrence_Of (Msg_Str, Loc))))))))));
       end if;
 
       Append_To (Decls, CG_Checks);
@@ -996,7 +996,7 @@ package body Exp_Prag is
              Then_Statements => New_List (
                Make_Raise_Statement (Loc,
                  Name =>
-                   New_Reference_To (RTE (RE_Assert_Failure), Loc)))));
+                   New_Occurrence_Of (RTE (RE_Assert_Failure), Loc)))));
 
       --  Case where we call the procedure
 
@@ -1083,7 +1083,7 @@ package body Exp_Prag is
              Then_Statements => New_List (
                Make_Procedure_Call_Statement (Loc,
                  Name =>
-                   New_Reference_To (RTE (RE_Raise_Assert_Failure), Loc),
+                   New_Occurrence_Of (RTE (RE_Raise_Assert_Failure), Loc),
                  Parameter_Associations => New_List (Relocate_Node (Msg))))));
       end if;
 
@@ -1376,7 +1376,7 @@ package body Exp_Prag is
                        Make_Object_Declaration (Loc,
                          Defining_Identifier => Excep_Internal,
                          Object_Definition   =>
-                           New_Reference_To (RTE (RE_Address), Loc));
+                           New_Occurrence_Of (RTE (RE_Address), Loc));
 
                      Insert_Action (N, Excep_Object);
                      Analyze (Excep_Object);
@@ -1396,7 +1396,7 @@ package body Exp_Prag is
                          Pragma_Argument_Associations => New_List (
                            Make_Pragma_Argument_Association (Loc,
                              Expression =>
-                               New_Reference_To (Excep_Internal, Loc)),
+                               New_Occurrence_Of (Excep_Internal, Loc)),
 
                            Make_Pragma_Argument_Association (Loc,
                              Expression =>
@@ -1417,7 +1417,7 @@ package body Exp_Prag is
 
                            Make_Pragma_Argument_Association (Loc,
                              Expression =>
-                               New_Reference_To (Excep_Internal, Loc)),
+                               New_Occurrence_Of (Excep_Internal, Loc)),
 
                            Make_Pragma_Argument_Association (Loc,
                              Expression =>
@@ -1434,7 +1434,7 @@ package body Exp_Prag is
                      Code :=
                         Make_Function_Call (Loc,
                           Name                   =>
-                            New_Reference_To (RTE (RE_Import_Address), Loc),
+                            New_Occurrence_Of (RTE (RE_Import_Address), Loc),
                           Parameter_Associations => New_List
                             (Make_String_Literal (Loc,
                               Strval => Excep_Image)));
@@ -1444,7 +1444,7 @@ package body Exp_Prag is
 
                   Rewrite (Call,
                     Make_Procedure_Call_Statement (Loc,
-                      Name => New_Reference_To
+                      Name => New_Occurrence_Of
                                 (RTE (RE_Register_VMS_Exception), Loc),
                       Parameter_Associations => New_List (
                         Code,
@@ -1675,9 +1675,9 @@ package body Exp_Prag is
               Make_Object_Declaration (Loop_Loc,
                 Defining_Identifier => Flag_Id,
                 Object_Definition   =>
-                  New_Reference_To (Standard_Boolean, Loop_Loc),
+                  New_Occurrence_Of (Standard_Boolean, Loop_Loc),
                 Expression          =>
-                  New_Reference_To (Standard_False, Loop_Loc)));
+                  New_Occurrence_Of (Standard_False, Loop_Loc)));
 
             --  Prevent an unwanted optimization where the Current_Value of
             --  the flag eliminates the if statement which stores the variant
@@ -1706,7 +1706,7 @@ package body Exp_Prag is
          Insert_Action (Loop_Stmt,
            Make_Object_Declaration (Loop_Loc,
              Defining_Identifier => Curr_Id,
-             Object_Definition   => New_Reference_To (Expr_Typ, Loop_Loc)));
+             Object_Definition   => New_Occurrence_Of (Expr_Typ, Loop_Loc)));
 
          --  Generate:
          --    Old : <type of Expr>;
@@ -1716,7 +1716,7 @@ package body Exp_Prag is
          Insert_Action (Loop_Stmt,
            Make_Object_Declaration (Loop_Loc,
              Defining_Identifier => Old_Id,
-             Object_Definition   => New_Reference_To (Expr_Typ, Loop_Loc)));
+             Object_Definition   => New_Occurrence_Of (Expr_Typ, Loop_Loc)));
 
          --  Restore original scope after all temporaries have been analyzed
 
@@ -1733,8 +1733,8 @@ package body Exp_Prag is
 
          Append_To (Old_Assign,
            Make_Assignment_Statement (Loc,
-             Name       => New_Reference_To (Old_Id, Loc),
-             Expression => New_Reference_To (Curr_Id, Loc)));
+             Name       => New_Occurrence_Of (Old_Id, Loc),
+             Expression => New_Occurrence_Of (Curr_Id, Loc)));
 
          --  Step 4: Store the current value of the expression
 
@@ -1747,7 +1747,7 @@ package body Exp_Prag is
 
          Append_To (Curr_Assign,
            Make_Assignment_Statement (Loc,
-             Name       => New_Reference_To (Curr_Id, Loc),
+             Name       => New_Occurrence_Of (Curr_Id, Loc),
              Expression => Relocate_Node (Expr)));
 
          --  Step 5: Create corresponding assertion to verify change of value
@@ -1764,8 +1764,8 @@ package body Exp_Prag is
                Make_Pragma_Argument_Association (Loc,
                  Expression =>
                    Make_Op (Loc,
-                     Curr_Val => New_Reference_To (Curr_Id, Loc),
-                     Old_Val  => New_Reference_To (Old_Id, Loc)))));
+                     Curr_Val => New_Occurrence_Of (Curr_Id, Loc),
+                     Old_Val  => New_Occurrence_Of (Old_Id, Loc)))));
 
          --  Generate:
          --    if Curr /= Old then
@@ -1783,8 +1783,8 @@ package body Exp_Prag is
                  Make_If_Statement (Loc,
                    Condition       =>
                      Make_Op_Ne (Loc,
-                       Left_Opnd  => New_Reference_To (Curr_Id, Loc),
-                       Right_Opnd => New_Reference_To (Old_Id, Loc)),
+                       Left_Opnd  => New_Occurrence_Of (Curr_Id, Loc),
+                       Right_Opnd => New_Occurrence_Of (Old_Id, Loc)),
                    Then_Statements => New_List (Prag));
             end if;
 
@@ -1809,8 +1809,8 @@ package body Exp_Prag is
               Make_Elsif_Part (Loc,
                 Condition       =>
                   Make_Op_Ne (Loc,
-                    Left_Opnd  => New_Reference_To (Curr_Id, Loc),
-                    Right_Opnd => New_Reference_To (Old_Id, Loc)),
+                    Left_Opnd  => New_Occurrence_Of (Curr_Id, Loc),
+                    Right_Opnd => New_Occurrence_Of (Old_Id, Loc)),
                 Then_Statements => New_List (Prag)));
          end if;
       end Process_Variant;
@@ -1861,7 +1861,7 @@ package body Exp_Prag is
 
       Insert_Action (N,
         Make_If_Statement (Loc,
-          Condition       => New_Reference_To (Flag_Id, Loc),
+          Condition       => New_Occurrence_Of (Flag_Id, Loc),
           Then_Statements => Old_Assign));
 
       --  Update the values of all expressions
@@ -1878,12 +1878,12 @@ package body Exp_Prag is
 
       Insert_Action (N,
         Make_If_Statement (Loc,
-          Condition       => New_Reference_To (Flag_Id, Loc),
+          Condition       => New_Occurrence_Of (Flag_Id, Loc),
           Then_Statements => New_List (If_Stmt),
           Else_Statements => New_List (
             Make_Assignment_Statement (Loc,
-              Name       => New_Reference_To (Flag_Id, Loc),
-              Expression => New_Reference_To (Standard_True, Loc)))));
+              Name       => New_Occurrence_Of (Flag_Id, Loc),
+              Expression => New_Occurrence_Of (Standard_True, Loc)))));
 
       --  Note: the pragma has been completely transformed into a sequence of
       --  corresponding declarations and statements. We leave it in the tree
@@ -1919,15 +1919,15 @@ package body Exp_Prag is
          Rewrite
            (N,
             Make_Procedure_Call_Statement (Loc,
-              Name => New_Reference_To (RTE (RE_Set_Deadline), Loc),
+              Name => New_Occurrence_Of (RTE (RE_Set_Deadline), Loc),
               Parameter_Associations => New_List (
                 Unchecked_Convert_To (RTE (RO_RT_Time),
                   Make_Op_Add (Loc,
                     Left_Opnd  =>
                       Make_Function_Call (Loc,
-                        New_Reference_To (RTE (RO_RT_To_Duration), Loc),
+                        New_Occurrence_Of (RTE (RO_RT_To_Duration), Loc),
                         New_List (Make_Function_Call (Loc,
-                          New_Reference_To (RTE (RE_Clock), Loc)))),
+                          New_Occurrence_Of (RTE (RE_Clock), Loc)))),
                     Right_Opnd  =>
                       Unchecked_Convert_To (Standard_Duration, Arg1 (N)))))));
 
index 27245cf..5bf33bc 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2011, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2013, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -48,7 +48,7 @@ package body Exp_Sel is
    begin
       return
         Make_Block_Statement (Loc,
-          Identifier   => New_Reference_To (Abr_Blk_Ent, Loc),
+          Identifier   => New_Occurrence_Of (Abr_Blk_Ent, Loc),
 
           Declarations => No_List,
 
@@ -84,13 +84,13 @@ package body Exp_Sel is
 
          Stmt :=
            Make_Procedure_Call_Statement (Loc,
-             Name => New_Reference_To (RTE (RE_Abort_Undefer), Loc),
+             Name => New_Occurrence_Of (RTE (RE_Abort_Undefer), Loc),
              Parameter_Associations => No_List);
       end if;
 
       return Make_Implicit_Exception_Handler (Loc,
         Exception_Choices =>
-          New_List (New_Reference_To (Stand.Abort_Signal, Loc)),
+          New_List (New_Occurrence_Of (Stand.Abort_Signal, Loc)),
         Statements        => New_List (Stmt));
    end Build_Abort_Block_Handler;
 
@@ -107,8 +107,8 @@ package body Exp_Sel is
       Append_To (Decls,
         Make_Object_Declaration (Loc,
           Defining_Identifier => B,
-          Object_Definition   => New_Reference_To (Standard_Boolean, Loc),
-          Expression          => New_Reference_To (Standard_False, Loc)));
+          Object_Definition   => New_Occurrence_Of (Standard_Boolean, Loc),
+          Expression          => New_Occurrence_Of (Standard_False, Loc)));
       return B;
    end Build_B;
 
@@ -125,7 +125,8 @@ package body Exp_Sel is
       Append_To (Decls,
         Make_Object_Declaration (Loc,
           Defining_Identifier => C,
-          Object_Definition => New_Reference_To (RTE (RE_Prim_Op_Kind), Loc)));
+          Object_Definition   =>
+            New_Occurrence_Of (RTE (RE_Prim_Op_Kind), Loc)));
       return C;
    end Build_C;
 
@@ -142,7 +143,7 @@ package body Exp_Sel is
       Cleanup_Block : constant Node_Id :=
                         Make_Block_Statement (Loc,
                           Identifier                 =>
-                            New_Reference_To (Blk_Ent, Loc),
+                            New_Occurrence_Of (Blk_Ent, Loc),
                           Declarations               => No_List,
                           Handled_Statement_Sequence =>
                             Make_Handled_Sequence_Of_Statements (Loc,
@@ -181,10 +182,10 @@ package body Exp_Sel is
         Make_Object_Declaration (Loc,
           Defining_Identifier => K,
           Object_Definition   =>
-            New_Reference_To (RTE (RE_Tagged_Kind), Loc),
+            New_Occurrence_Of (RTE (RE_Tagged_Kind), Loc),
           Expression          =>
             Make_Function_Call (Loc,
-              Name => New_Reference_To (RTE (RE_Get_Tagged_Kind), Loc),
+              Name => New_Occurrence_Of (RTE (RE_Get_Tagged_Kind), Loc),
               Parameter_Associations => New_List (Tag_Node))));
       return K;
    end Build_K;
@@ -202,7 +203,7 @@ package body Exp_Sel is
       Append_To (Decls,
         Make_Object_Declaration (Loc,
           Defining_Identifier => S,
-          Object_Definition   => New_Reference_To (Standard_Integer, Loc)));
+          Object_Definition   => New_Occurrence_Of (Standard_Integer, Loc)));
       return S;
    end Build_S;
 
@@ -222,10 +223,10 @@ package body Exp_Sel is
       if Tagged_Type_Expansion then
          return
            Make_Assignment_Statement (Loc,
-             Name       => New_Reference_To (S, Loc),
+             Name       => New_Occurrence_Of (S, Loc),
              Expression =>
                Make_Function_Call (Loc,
-                 Name => New_Reference_To (RTE (RE_Get_Offset_Index), Loc),
+                 Name => New_Occurrence_Of (RTE (RE_Get_Offset_Index), Loc),
                  Parameter_Associations => New_List (
                    Unchecked_Convert_To (RTE (RE_Tag), Obj),
                    Make_Integer_Literal (Loc, DT_Position (Call_Ent)))));
@@ -235,10 +236,10 @@ package body Exp_Sel is
       else
          return
            Make_Assignment_Statement (Loc,
-             Name       => New_Reference_To (S, Loc),
+             Name       => New_Occurrence_Of (S, Loc),
              Expression =>
                Make_Function_Call (Loc,
-                 Name => New_Reference_To (RTE (RE_Get_Offset_Index), Loc),
+                 Name => New_Occurrence_Of (RTE (RE_Get_Offset_Index), Loc),
 
                  Parameter_Associations => New_List (
 
@@ -251,7 +252,7 @@ package body Exp_Sel is
                      --  Iface_Typ
 
                    Make_Attribute_Reference (Loc,
-                     Prefix => New_Reference_To (Typ, Loc),
+                     Prefix => New_Occurrence_Of (Typ, Loc),
                      Attribute_Name => Name_Tag),
 
                      --  Position
index 987556a..ce313c6 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2011, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2013, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -1171,7 +1171,7 @@ package body Exp_Strm is
                  Make_Raise_Constraint_Error (Loc,
                    Condition => Make_Op_Ne (Loc,
                                   Left_Opnd  =>
-                                    New_Reference_To
+                                    New_Occurrence_Of
                                       (Defining_Identifier (Decl), Loc),
                                   Right_Opnd =>
                                     New_Copy_Tree (Node (Discr_Elmt))),
@@ -1600,7 +1600,7 @@ package body Exp_Strm is
           Parameter_Type      =>
           Make_Access_Definition (Loc,
              Null_Exclusion_Present => True,
-             Subtype_Mark => New_Reference_To (
+             Subtype_Mark => New_Occurrence_Of (
                Class_Wide_Type (RTE (RE_Root_Stream_Type)), Loc))));
 
       if Nam /= TSS_Stream_Input then
@@ -1608,7 +1608,7 @@ package body Exp_Strm is
            Make_Parameter_Specification (Loc,
              Defining_Identifier => Make_Defining_Identifier (Loc, Name_V),
              Out_Present         => (Nam = TSS_Stream_Read),
-             Parameter_Type      => New_Reference_To (Typ, Loc)));
+             Parameter_Type      => New_Occurrence_Of (Typ, Loc)));
       end if;
 
       return Profile;
@@ -1644,7 +1644,7 @@ package body Exp_Strm is
               Parameter_Type =>
                 Make_Access_Definition (Loc,
                   Null_Exclusion_Present => True,
-                  Subtype_Mark => New_Reference_To (
+                  Subtype_Mark => New_Occurrence_Of (
                     Class_Wide_Type (RTE (RE_Root_Stream_Type)), Loc)))),
 
           Result_Definition => New_Occurrence_Of (Typ, Loc));
@@ -1688,7 +1688,7 @@ package body Exp_Strm is
               Parameter_Type =>
                 Make_Access_Definition (Loc,
                   Null_Exclusion_Present => True,
-                  Subtype_Mark => New_Reference_To (
+                  Subtype_Mark => New_Occurrence_Of (
                     Class_Wide_Type (RTE (RE_Root_Stream_Type)), Loc))),
 
             Make_Parameter_Specification (Loc,
index d9ad0e1..001bc5b 100644 (file)
@@ -718,7 +718,7 @@ package body Exp_Util is
 
          --  a) Storage pool
 
-         Actuals := New_List (New_Reference_To (Pool_Id, Loc));
+         Actuals := New_List (New_Occurrence_Of (Pool_Id, Loc));
 
          if Is_Allocate then
 
@@ -741,7 +741,7 @@ package body Exp_Util is
 
             if Needs_Finalization (Desig_Typ) then
                Fin_Mas_Id  := Finalization_Master (Ptr_Typ);
-               Fin_Mas_Act := New_Reference_To (Fin_Mas_Id, Loc);
+               Fin_Mas_Act := New_Occurrence_Of (Fin_Mas_Id, Loc);
 
                --  Handle the case where the master is actually a pointer to a
                --  master. This case arises in build-in-place functions.
@@ -769,7 +769,7 @@ package body Exp_Util is
 
                Append_To (Actuals,
                  Make_Attribute_Reference (Loc,
-                   Prefix         => New_Reference_To (Fin_Addr_Id, Loc),
+                   Prefix         => New_Occurrence_Of (Fin_Addr_Id, Loc),
                    Attribute_Name => Name_Unrestricted_Access));
             else
                Append_To (Actuals, Make_Null (Loc));
@@ -780,11 +780,11 @@ package body Exp_Util is
          --  f) Storage_Size
          --  g) Alignment
 
-         Append_To (Actuals, New_Reference_To (Addr_Id, Loc));
-         Append_To (Actuals, New_Reference_To (Size_Id, Loc));
+         Append_To (Actuals, New_Occurrence_Of (Addr_Id, Loc));
+         Append_To (Actuals, New_Occurrence_Of (Size_Id, Loc));
 
          if Is_Allocate or else not Is_Class_Wide_Type (Desig_Typ) then
-            Append_To (Actuals, New_Reference_To (Alig_Id, Loc));
+            Append_To (Actuals, New_Occurrence_Of (Alig_Id, Loc));
 
          --  For deallocation of class wide types we obtain the value of
          --  alignment from the Type Specific Record of the deallocated object.
@@ -831,7 +831,7 @@ package body Exp_Util is
                  and then Is_Type (Entity (Temp))
                then
                   Flag_Expr :=
-                    New_Reference_To
+                    New_Occurrence_Of
                       (Boolean_Literals
                          (Needs_Finalization (Entity (Temp))), Loc);
 
@@ -875,21 +875,21 @@ package body Exp_Util is
                   Flag_Expr :=
                     Make_Function_Call (Loc,
                       Name                   =>
-                        New_Reference_To (RTE (RE_Needs_Finalization), Loc),
+                        New_Occurrence_Of (RTE (RE_Needs_Finalization), Loc),
                       Parameter_Associations => New_List (Param));
 
                --  Processing for generic actuals
 
                elsif Is_Generic_Actual_Type (Desig_Typ) then
                   Flag_Expr :=
-                    New_Reference_To (Boolean_Literals
+                    New_Occurrence_Of (Boolean_Literals
                       (Needs_Finalization (Base_Type (Desig_Typ))), Loc);
 
                --  The object does not require any specialized checks, it is
                --  known to be controlled.
 
                else
-                  Flag_Expr := New_Reference_To (Standard_True, Loc);
+                  Flag_Expr := New_Occurrence_Of (Standard_True, Loc);
                end if;
 
                --  Create the temporary which represents the finalization state
@@ -902,23 +902,23 @@ package body Exp_Util is
                    Defining_Identifier => Flag_Id,
                    Constant_Present    => True,
                    Object_Definition   =>
-                     New_Reference_To (Standard_Boolean, Loc),
+                     New_Occurrence_Of (Standard_Boolean, Loc),
                     Expression          => Flag_Expr));
 
-               Append_To (Actuals, New_Reference_To (Flag_Id, Loc));
+               Append_To (Actuals, New_Occurrence_Of (Flag_Id, Loc));
             end;
 
          --  The object is not controlled
 
          else
-            Append_To (Actuals, New_Reference_To (Standard_False, Loc));
+            Append_To (Actuals, New_Occurrence_Of (Standard_False, Loc));
          end if;
 
          --  i) On_Subpool
 
          if Is_Allocate then
             Append_To (Actuals,
-              New_Reference_To (Boolean_Literals (Present (Subpool)), Loc));
+              New_Occurrence_Of (Boolean_Literals (Present (Subpool)), Loc));
          end if;
 
          --  Step 2: Build a wrapper Allocate / Deallocate which internally
@@ -950,7 +950,7 @@ package body Exp_Util is
                    Make_Parameter_Specification (Loc,
                      Defining_Identifier => Make_Temporary (Loc, 'P'),
                      Parameter_Type =>
-                       New_Reference_To (RTE (RE_Root_Storage_Pool), Loc)),
+                       New_Occurrence_Of (RTE (RE_Root_Storage_Pool), Loc)),
 
                   --  A : [out] Address
 
@@ -958,21 +958,21 @@ package body Exp_Util is
                      Defining_Identifier => Addr_Id,
                      Out_Present         => Is_Allocate,
                      Parameter_Type      =>
-                       New_Reference_To (RTE (RE_Address), Loc)),
+                       New_Occurrence_Of (RTE (RE_Address), Loc)),
 
                   --  S : Storage_Count
 
                    Make_Parameter_Specification (Loc,
                      Defining_Identifier => Size_Id,
                      Parameter_Type      =>
-                       New_Reference_To (RTE (RE_Storage_Count), Loc)),
+                       New_Occurrence_Of (RTE (RE_Storage_Count), Loc)),
 
                   --  L : Storage_Count
 
                    Make_Parameter_Specification (Loc,
                      Defining_Identifier => Alig_Id,
                      Parameter_Type      =>
-                       New_Reference_To (RTE (RE_Storage_Count), Loc)))),
+                       New_Occurrence_Of (RTE (RE_Storage_Count), Loc)))),
 
              Declarations => No_List,
 
@@ -980,7 +980,7 @@ package body Exp_Util is
                Make_Handled_Sequence_Of_Statements (Loc,
                  Statements => New_List (
                    Make_Procedure_Call_Statement (Loc,
-                     Name => New_Reference_To (Proc_To_Call, Loc),
+                     Name => New_Occurrence_Of (Proc_To_Call, Loc),
                      Parameter_Associations => Actuals)))));
 
          --  The newly generated Allocate / Deallocate becomes the default
@@ -1009,7 +1009,7 @@ package body Exp_Util is
       else
          return
            Make_Procedure_Call_Statement (Loc,
-             Name => New_Reference_To (RTE (RE), Loc));
+             Name => New_Occurrence_Of (RTE (RE), Loc));
       end if;
    end Build_Runtime_Call;
 
@@ -2097,11 +2097,11 @@ package body Exp_Util is
          begin
             Rewrite (Subtype_Indic,
               Make_Subtype_Indication (Loc,
-                Subtype_Mark => New_Reference_To (Unc_Type, Loc),
+                Subtype_Mark => New_Occurrence_Of (Unc_Type, Loc),
                 Constraint =>
                   Make_Index_Or_Discriminant_Constraint (Loc,
                     Constraints => New_List
-                      (New_Reference_To (Slice_Type, Loc)))));
+                      (New_Occurrence_Of (Slice_Type, Loc)))));
 
             --  This subtype indication may be used later for constraint checks
             --  we better make sure that if a variable was used as a bound of
@@ -2113,7 +2113,7 @@ package body Exp_Util is
       elsif Ekind (Exp_Typ) = E_String_Literal_Subtype then
          Rewrite (Subtype_Indic,
            Make_Subtype_Indication (Loc,
-             Subtype_Mark => New_Reference_To (Unc_Type, Loc),
+             Subtype_Mark => New_Occurrence_Of (Unc_Type, Loc),
              Constraint =>
                Make_Index_Or_Discriminant_Constraint (Loc,
                  Constraints => New_List (
@@ -2169,7 +2169,7 @@ package body Exp_Util is
             Insert_Action (N,
               Make_Subtype_Declaration (Loc,
                 Defining_Identifier => T,
-                Subtype_Indication  => New_Reference_To (Exp_Typ, Loc)));
+                Subtype_Indication  => New_Occurrence_Of (Exp_Typ, Loc)));
 
             --  This type is marked as an itype even though it has an explicit
             --  declaration since otherwise Is_Generic_Actual_Type can get
@@ -2180,7 +2180,7 @@ package body Exp_Util is
             Set_Associated_Node_For_Itype (T, Exp);
          end if;
 
-         Rewrite (Subtype_Indic, New_Reference_To (T, Loc));
+         Rewrite (Subtype_Indic, New_Occurrence_Of (T, Loc));
 
       --  Nothing needs to be done for private types with unknown discriminants
       --  if the underlying type is not an unconstrained composite type or it
@@ -5532,7 +5532,7 @@ package body Exp_Util is
                  Attribute_Name => Name_Size),
              Right_Opnd =>
                Make_Attribute_Reference (Loc,
-                 Prefix => New_Reference_To (Constr_Root, Loc),
+                 Prefix => New_Occurrence_Of (Constr_Root, Loc),
                  Attribute_Name => Name_Object_Size));
       else
          --  subtype rg__xx is
@@ -5552,7 +5552,7 @@ package body Exp_Util is
           Defining_Identifier => Range_Type,
           Subtype_Indication =>
             Make_Subtype_Indication (Loc,
-              Subtype_Mark => New_Reference_To (RTE (RE_Storage_Offset), Loc),
+              Subtype_Mark => New_Occurrence_Of (RTE (RE_Storage_Offset), Loc),
               Constraint => Make_Range_Constraint (Loc,
                 Range_Expression =>
                   Make_Range (Loc,
@@ -5571,11 +5571,11 @@ package body Exp_Util is
           Defining_Identifier => Str_Type,
           Subtype_Indication =>
             Make_Subtype_Indication (Loc,
-              Subtype_Mark => New_Reference_To (RTE (RE_Storage_Array), Loc),
+              Subtype_Mark => New_Occurrence_Of (RTE (RE_Storage_Array), Loc),
               Constraint =>
                 Make_Index_Or_Discriminant_Constraint (Loc,
                   Constraints =>
-                    New_List (New_Reference_To (Range_Type, Loc))))));
+                    New_List (New_Occurrence_Of (Range_Type, Loc))))));
 
       --  type Equiv_T is record
       --    [ _parent : Tnn; ]
@@ -5602,7 +5602,7 @@ package body Exp_Util is
              Component_Definition =>
                Make_Component_Definition (Loc,
                  Aliased_Present    => False,
-                 Subtype_Indication => New_Reference_To (Constr_Root, Loc))));
+                 Subtype_Indication => New_Occurrence_Of (Constr_Root, Loc))));
       end if;
 
       Append_To (Comp_List,
@@ -5611,7 +5611,7 @@ package body Exp_Util is
           Component_Definition =>
             Make_Component_Definition (Loc,
               Aliased_Present    => False,
-              Subtype_Indication => New_Reference_To (Str_Type, Loc))));
+              Subtype_Indication => New_Occurrence_Of (Str_Type, Loc))));
 
       Append_To (List_Def,
         Make_Full_Type_Declaration (Loc,
@@ -5882,7 +5882,7 @@ package body Exp_Util is
 
          Set_Full_View (Priv_Subtyp, Full_Subtyp);
 
-         return New_Reference_To (Priv_Subtyp, Loc);
+         return New_Occurrence_Of (Priv_Subtyp, Loc);
 
       elsif Is_Array_Type (Unc_Typ) then
          for J in 1 .. Number_Dimensions (Unc_Typ) loop
@@ -5947,7 +5947,7 @@ package body Exp_Util is
             Append_To (List_Constr,
               Make_Selected_Component (Loc,
                 Prefix        => Duplicate_Subexpr_No_Checks (E),
-                Selector_Name => New_Reference_To (D, Loc)));
+                Selector_Name => New_Occurrence_Of (D, Loc)));
 
             Next_Discriminant (D);
          end loop;
@@ -5955,7 +5955,7 @@ package body Exp_Util is
 
       return
         Make_Subtype_Indication (Loc,
-          Subtype_Mark => New_Reference_To (Unc_Typ, Loc),
+          Subtype_Mark => New_Occurrence_Of (Unc_Typ, Loc),
           Constraint   =>
             Make_Index_Or_Discriminant_Constraint (Loc,
               Constraints => List_Constr));
@@ -6696,7 +6696,7 @@ package body Exp_Util is
       then
          Def_Id := Make_Temporary (Loc, 'R', Exp);
          Set_Etype (Def_Id, Exp_Type);
-         Res := New_Reference_To (Def_Id, Loc);
+         Res := New_Occurrence_Of (Def_Id, Loc);
 
          --  If the expression is a packed reference, it must be reanalyzed and
          --  expanded, depending on context. This is the case for actuals where
@@ -6713,7 +6713,7 @@ package body Exp_Util is
          E :=
            Make_Object_Declaration (Loc,
              Defining_Identifier => Def_Id,
-             Object_Definition   => New_Reference_To (Exp_Type, Loc),
+             Object_Definition   => New_Occurrence_Of (Exp_Type, Loc),
              Constant_Present    => True,
              Expression          => Relocate_Node (Exp));
 
@@ -6726,13 +6726,13 @@ package body Exp_Util is
       elsif Nkind (Exp) = N_Explicit_Dereference then
          Def_Id := Make_Temporary (Loc, 'R', Exp);
          Res :=
-           Make_Explicit_Dereference (Loc, New_Reference_To (Def_Id, Loc));
+           Make_Explicit_Dereference (Loc, New_Occurrence_Of (Def_Id, Loc));
 
          Insert_Action (Exp,
            Make_Object_Declaration (Loc,
              Defining_Identifier => Def_Id,
              Object_Definition   =>
-               New_Reference_To (Etype (Prefix (Exp)), Loc),
+               New_Occurrence_Of (Etype (Prefix (Exp)), Loc),
              Constant_Present    => True,
              Expression          => Relocate_Node (Prefix (Exp))));
 
@@ -6767,23 +6767,23 @@ package body Exp_Util is
             --  a controlled temporary.
 
             Def_Id := Make_Temporary (Loc, 'R', Exp);
-            Res := New_Reference_To (Def_Id, Loc);
+            Res := New_Occurrence_Of (Def_Id, Loc);
 
             Insert_Action (Exp,
               Make_Object_Renaming_Declaration (Loc,
                 Defining_Identifier => Def_Id,
-                Subtype_Mark        => New_Reference_To (Exp_Type, Loc),
+                Subtype_Mark        => New_Occurrence_Of (Exp_Type, Loc),
                 Name                => Relocate_Node (Exp)));
 
          else
             Def_Id := Make_Temporary (Loc, 'R', Exp);
             Set_Etype (Def_Id, Exp_Type);
-            Res := New_Reference_To (Def_Id, Loc);
+            Res := New_Occurrence_Of (Def_Id, Loc);
 
             E :=
               Make_Object_Declaration (Loc,
                 Defining_Identifier => Def_Id,
-                Object_Definition   => New_Reference_To (Exp_Type, Loc),
+                Object_Definition   => New_Occurrence_Of (Exp_Type, Loc),
                 Constant_Present    => not Is_Variable (Exp),
                 Expression          => Relocate_Node (Exp));
 
@@ -6828,16 +6828,16 @@ package body Exp_Util is
               Make_Object_Renaming_Declaration (Loc,
                 Defining_Identifier => Def_Id,
                 Subtype_Mark        =>
-                  New_Reference_To (Base_Type (Etype (Prefix (Exp))), Loc),
+                  New_Occurrence_Of (Base_Type (Etype (Prefix (Exp))), Loc),
                 Name                => Relocate_Node (Prefix (Exp))));
 
          else
-            Res := New_Reference_To (Def_Id, Loc);
+            Res := New_Occurrence_Of (Def_Id, Loc);
 
             Insert_Action (Exp,
               Make_Object_Renaming_Declaration (Loc,
                 Defining_Identifier => Def_Id,
-                Subtype_Mark        => New_Reference_To (Exp_Type, Loc),
+                Subtype_Mark        => New_Occurrence_Of (Exp_Type, Loc),
                 Name                => Relocate_Node (Exp)));
          end if;
 
@@ -6910,7 +6910,7 @@ package body Exp_Util is
          --  and "copies" the returned object.
 
          if GNATprove_Mode then
-            Res := New_Reference_To (Def_Id, Loc);
+            Res := New_Occurrence_Of (Def_Id, Loc);
             Ref_Type := Exp_Type;
 
          --  Regular expansion utilizing an access type and 'reference
@@ -6918,7 +6918,7 @@ package body Exp_Util is
          else
             Res :=
               Make_Explicit_Dereference (Loc,
-                Prefix => New_Reference_To (Def_Id, Loc));
+                Prefix => New_Occurrence_Of (Def_Id, Loc));
 
             --  Generate:
             --    type Ann is access all <Exp_Type>;
@@ -6932,7 +6932,7 @@ package body Exp_Util is
                   Make_Access_To_Object_Definition (Loc,
                     All_Present        => True,
                     Subtype_Indication =>
-                      New_Reference_To (Exp_Type, Loc)));
+                      New_Occurrence_Of (Exp_Type, Loc)));
 
             Insert_Action (Exp, Ptr_Typ_Decl);
          end if;
@@ -6981,7 +6981,7 @@ package body Exp_Util is
          Insert_Action (Exp,
            Make_Object_Declaration (Loc,
              Defining_Identifier => Def_Id,
-             Object_Definition   => New_Reference_To (Ref_Type, Loc),
+             Object_Definition   => New_Occurrence_Of (Ref_Type, Loc),
              Constant_Present    => True,
              Expression          => New_Exp));
       end if;
index 93e7248..d6da132 100644 (file)
@@ -350,7 +350,7 @@ package body Freeze is
          then
             Call_Name := New_Copy (Name (N));
          else
-            Call_Name := New_Reference_To (Old_S, Loc);
+            Call_Name := New_Occurrence_Of (Old_S, Loc);
          end if;
 
       else
@@ -432,7 +432,7 @@ package body Freeze is
 
       if Present (Formal) then
          while Present (Formal) loop
-            Append (New_Reference_To (Formal, Loc), Actuals);
+            Append (New_Occurrence_Of (Formal, Loc), Actuals);
             Next_Formal (Formal);
          end loop;
       end if;
index ff75cf1..ec9a916 100644 (file)
@@ -429,9 +429,23 @@ package body Util is
             Error_Msg_SC -- CODEFIX
               ("|extra ""("" ignored");
 
+         --  Note: the following error used to be labeled as a non-serious
+         --  error like the other similar messages here (with a | at the start
+         --  of the message). But this caused some annoying cascaded errors
+         --  that were confusing, as shown by this example:
+
+         --          A : array (1 .. 9) of Integer :=
+         --            ((1 .. 2) => 0,
+         --             1  2   3
+         --       >>> positional aggregate cannot have one component
+         --       >>> named association cannot follow positional association
+         --       >>> extra ")" ignored
+
+         --  So we decided to label it as serious after all
+
          elsif T = Tok_Right_Paren then
             Error_Msg_SC -- CODEFIX
-              ("|extra "")"" ignored");
+              ("extra "")"" ignored");
 
          elsif T = Tok_Semicolon then
             Error_Msg_SC -- CODEFIX
index 2c74afb..60e47f8 100644 (file)
@@ -806,7 +806,7 @@ package body Rtsfind is
       Scop : Entity_Id;
 
    begin
-      Nam  := New_Reference_To (U.Entity, Standard_Location);
+      Nam  := New_Occurrence_Of (U.Entity, Standard_Location);
       Scop := Scope (U.Entity);
 
       if Nkind (N) = N_Defining_Program_Unit_Name then
@@ -814,7 +814,7 @@ package body Rtsfind is
             Nam :=
               Make_Expanded_Name (Standard_Location,
                 Chars  => Chars (U.Entity),
-                Prefix => New_Reference_To (Scop, Standard_Location),
+                Prefix => New_Occurrence_Of (Scop, Standard_Location),
                 Selector_Name => Nam);
             Set_Entity (Nam, U.Entity);
 
index aeddc1f..bb17944 100644 (file)
@@ -1377,7 +1377,7 @@ package body Sem_Aggr is
                Expr :=
                  Make_Attribute_Reference
                    (Loc,
-                    Prefix         => New_Reference_To (Index_Typ, Loc),
+                    Prefix         => New_Occurrence_Of (Index_Typ, Loc),
                     Attribute_Name => Name_Val,
                     Expressions    => New_List (Expr_Pos));
             end if;
@@ -1400,7 +1400,7 @@ package body Sem_Aggr is
             To_Pos :=
               Make_Attribute_Reference
                 (Loc,
-                 Prefix         => New_Reference_To (Index_Typ, Loc),
+                 Prefix         => New_Occurrence_Of (Index_Typ, Loc),
                  Attribute_Name => Name_Pos,
                  Expressions    => New_List (Duplicate_Subexpr (To)));
 
@@ -1412,7 +1412,7 @@ package body Sem_Aggr is
             Expr :=
               Make_Attribute_Reference
                 (Loc,
-                 Prefix         => New_Reference_To (Index_Typ, Loc),
+                 Prefix         => New_Occurrence_Of (Index_Typ, Loc),
                  Attribute_Name => Name_Val,
                  Expressions    => New_List (Expr_Pos));
 
@@ -1432,11 +1432,12 @@ package body Sem_Aggr is
                   Insert_Action (N,
                     Make_Object_Declaration (Loc,
                       Defining_Identifier => Def_Id,
-                      Object_Definition   => New_Reference_To (Index_Typ, Loc),
+                      Object_Definition   =>
+                        New_Occurrence_Of (Index_Typ, Loc),
                       Constant_Present    => True,
                       Expression          => Relocate_Node (Expr)));
 
-                  Expr := New_Reference_To (Def_Id, Loc);
+                  Expr := New_Occurrence_Of (Def_Id, Loc);
                end;
             end if;
          end if;
index 804a9c6..5d8cc7e 100644 (file)
@@ -2507,7 +2507,7 @@ package body Sem_Attr is
 
       when Attribute_Abort_Signal =>
          Check_Standard_Prefix;
-         Rewrite (N, New_Reference_To (Stand.Abort_Signal, Loc));
+         Rewrite (N, New_Occurrence_Of (Stand.Abort_Signal, Loc));
          Analyze (N);
 
       ------------
@@ -2776,7 +2776,7 @@ package body Sem_Attr is
 
          Set_Etype (N, Base_Type (Entity (P)));
          Set_Entity (N, Base_Type (Entity (P)));
-         Rewrite (N, New_Reference_To (Entity (N), Loc));
+         Rewrite (N, New_Occurrence_Of (Entity (N), Loc));
          Analyze (N);
       end Base;
 
@@ -7783,7 +7783,7 @@ package body Sem_Attr is
          elsif Is_VAX_Float (P_Type)
            and then Nkind (Lo_Bound) = N_Identifier
          then
-            Rewrite (N, New_Reference_To (Entity (Lo_Bound), Sloc (N)));
+            Rewrite (N, New_Occurrence_Of (Entity (Lo_Bound), Sloc (N)));
             Analyze (N);
 
          else
@@ -8027,7 +8027,7 @@ package body Sem_Attr is
          elsif Is_VAX_Float (P_Type)
            and then Nkind (Hi_Bound) = N_Identifier
          then
-            Rewrite (N, New_Reference_To (Entity (Hi_Bound), Sloc (N)));
+            Rewrite (N, New_Occurrence_Of (Entity (Hi_Bound), Sloc (N)));
             Analyze (N);
 
          else
index 1b35930..958bbb2 100644 (file)
@@ -2379,7 +2379,7 @@ package body Sem_Ch10 is
                 Name =>
                   Make_Identifier (Loc,
                     Chars => New_External_Name (Chars (Etype (Nam)), 'E')),
-                 Expression => New_Reference_To (Standard_True, Loc)));
+                 Expression => New_Occurrence_Of (Standard_True, Loc)));
          end if;
       end if;
    end Analyze_Task_Body_Stub;
@@ -3170,7 +3170,7 @@ package body Sem_Ch10 is
 
       function Build_Ancestor_Name (P : Node_Id) return Node_Id is
          P_Ref  : constant Node_Id :=
-                   New_Reference_To (Defining_Entity (P), Loc);
+                   New_Occurrence_Of (Defining_Entity (P), Loc);
          P_Spec : Node_Id := P;
 
       begin
@@ -3202,14 +3202,14 @@ package body Sem_Ch10 is
 
       begin
          if No (Parent_Spec (P_Unit)) then
-            return New_Reference_To (P_Name, Loc);
+            return New_Occurrence_Of (P_Name, Loc);
 
          else
             Result :=
               Make_Expanded_Name (Loc,
                 Chars  => Chars (P_Name),
                 Prefix => Build_Ancestor_Name (Unit (Parent_Spec (P_Unit))),
-                Selector_Name => New_Reference_To (P_Name, Loc));
+                Selector_Name => New_Occurrence_Of (P_Name, Loc));
             Set_Entity (Result, P_Name);
             return Result;
          end if;
@@ -3945,7 +3945,7 @@ package body Sem_Ch10 is
                      --  a parent unit that has limited with-clauses.
 
                      Set_Subtype_Indication (Decl,
-                       New_Reference_To (Non_Lim_View, Sloc (Def_Id)));
+                       New_Occurrence_Of (Non_Lim_View, Sloc (Def_Id)));
                      Set_Etype (Def_Id, Non_Lim_View);
                      Set_Ekind (Def_Id, Subtype_Kind (Ekind (Non_Lim_View)));
                      Set_Analyzed (Decl, False);
index 0cd00c7..56cdc3d 100644 (file)
@@ -1931,13 +1931,13 @@ package body Sem_Ch12 is
       Lo :=
         Make_Attribute_Reference (Loc,
           Attribute_Name => Name_First,
-          Prefix         => New_Reference_To (T, Loc));
+          Prefix         => New_Occurrence_Of (T, Loc));
       Set_Etype (Lo, T);
 
       Hi :=
         Make_Attribute_Reference (Loc,
           Attribute_Name => Name_Last,
-          Prefix         => New_Reference_To (T, Loc));
+          Prefix         => New_Occurrence_Of (T, Loc));
       Set_Etype (Hi, T);
 
       Set_Scalar_Range (T,
@@ -2143,7 +2143,7 @@ package body Sem_Ch12 is
          then
             declare
                Non_Freezing_Ref : constant Node_Id :=
-                                    New_Reference_To (Id, Sloc (Id));
+                                    New_Occurrence_Of (Id, Sloc (Id));
                Decl : Node_Id;
 
             begin
@@ -3598,7 +3598,7 @@ package body Sem_Ch12 is
            Make_Package_Renaming_Declaration (Loc,
              Defining_Unit_Name =>
                Make_Defining_Identifier (Loc, Chars (Gen_Unit)),
-             Name => New_Reference_To (Act_Decl_Id, Loc));
+             Name => New_Occurrence_Of (Act_Decl_Id, Loc));
 
          Append (Unit_Renaming, Renaming_List);
 
@@ -9048,7 +9048,7 @@ package body Sem_Ch12 is
          Nod :=
            Make_Package_Renaming_Declaration (Loc,
              Defining_Unit_Name => New_Copy (Defining_Identifier (Formal)),
-             Name               => New_Reference_To (Actual_Pack, Loc));
+             Name               => New_Occurrence_Of (Actual_Pack, Loc));
 
          Set_Associated_Formal_Package (Defining_Unit_Name (Nod),
            Defining_Identifier (Formal));
@@ -11743,7 +11743,7 @@ package body Sem_Ch12 is
       Decl_Node :=
         Make_Subtype_Declaration (Loc,
           Defining_Identifier => Subt,
-          Subtype_Indication  => New_Reference_To (Act_T, Loc));
+          Subtype_Indication  => New_Occurrence_Of (Act_T, Loc));
 
       if Is_Private_Type (Act_T) then
          Set_Has_Private_View (Subtype_Indication (Decl_Node));
@@ -11806,7 +11806,7 @@ package body Sem_Ch12 is
               Make_Subtype_Declaration (Loc,
                 Defining_Identifier => New_Corr,
                 Subtype_Indication  =>
-                  New_Reference_To (Corr_Rec, Loc));
+                  New_Occurrence_Of (Corr_Rec, Loc));
             Append_To (Decl_Nodes, Corr_Decl);
 
             if Ekind (Act_T) = E_Task_Type then
index 31f3396..cf80e8d 100644 (file)
@@ -5610,7 +5610,7 @@ package body Sem_Ch13 is
             if Operating_Mode = Check_Semantics and then ASIS_Mode then
                AtM_Nod :=
                  Make_Attribute_Definition_Clause (Loc,
-                   Name       => New_Reference_To (Base_Type (Rectype), Loc),
+                   Name       => New_Occurrence_Of (Base_Type (Rectype), Loc),
                    Chars      => Name_Alignment,
                    Expression => Relocate_Node (Expression (M)));
 
@@ -6861,14 +6861,14 @@ package body Sem_Ch13 is
                        Defining_Identifier => BTemp,
                        Constant_Present    => True,
                          Object_Definition =>
-                           New_Reference_To (Standard_Boolean, Loc),
+                           New_Occurrence_Of (Standard_Boolean, Loc),
                          Expression        => Expr_M)),
 
                    Handled_Statement_Sequence =>
                      Make_Handled_Sequence_Of_Statements (Loc,
                        Statements => New_List (
                          Make_Simple_Return_Statement (Loc,
-                           Expression => New_Reference_To (BTemp, Loc)))));
+                           Expression => New_Occurrence_Of (BTemp, Loc)))));
 
                --  Insert declaration before freeze node and body after
 
@@ -10266,7 +10266,7 @@ package body Sem_Ch13 is
          Out_P   : constant Boolean := (Nam = TSS_Stream_Read);
          Formals : List_Id;
          Spec    : Node_Id;
-         T_Ref   : constant Node_Id := New_Reference_To (Etyp, Loc);
+         T_Ref   : constant Node_Id := New_Occurrence_Of (Etyp, Loc);
 
       begin
          Subp_Id := Make_Defining_Identifier (Loc, Sname);
@@ -10280,7 +10280,7 @@ package body Sem_Ch13 is
                         Parameter_Type =>
                           Make_Access_Definition (Loc,
                             Subtype_Mark =>
-                              New_Reference_To (
+                              New_Occurrence_Of (
                                 Designated_Type (Etype (F)), Loc))));
 
          if Nam = TSS_Stream_Input then
@@ -10350,7 +10350,7 @@ package body Sem_Ch13 is
       Subp_Decl :=
         Make_Subprogram_Renaming_Declaration (Loc,
           Specification => Build_Spec,
-          Name => New_Reference_To (Subp, Loc));
+          Name => New_Occurrence_Of (Subp, Loc));
 
       if Defer_Declaration then
          Set_TSS (Base_Type (Ent), Subp_Id);
index 664a1da..fc5c4f2 100644 (file)
@@ -5651,7 +5651,7 @@ package body Sem_Ch3 is
                 Defining_Identifier => Derived_Type,
                 Subtype_Indication  =>
                   Make_Subtype_Indication (Loc,
-                    Subtype_Mark => New_Reference_To (Implicit_Base, Loc),
+                    Subtype_Mark => New_Occurrence_Of (Implicit_Base, Loc),
                     Constraint => Constraint (Indic)));
 
             Rewrite (N, New_Indic);
@@ -6026,13 +6026,13 @@ package body Sem_Ch3 is
                Lo :=
                   Make_Attribute_Reference (Loc,
                     Attribute_Name => Name_First,
-                    Prefix         => New_Reference_To (Derived_Type, Loc));
+                    Prefix         => New_Occurrence_Of (Derived_Type, Loc));
                Set_Etype (Lo, Derived_Type);
 
                Hi :=
                   Make_Attribute_Reference (Loc,
                     Attribute_Name => Name_Last,
-                    Prefix         => New_Reference_To (Derived_Type, Loc));
+                    Prefix         => New_Occurrence_Of (Derived_Type, Loc));
                Set_Etype (Hi, Derived_Type);
 
                Set_Scalar_Range (Derived_Type,
@@ -9276,7 +9276,7 @@ package body Sem_Ch3 is
           Defining_Identifier => Subt,
           Subtype_Indication  =>
             Make_Subtype_Indication (Loc,
-              Subtype_Mark => New_Reference_To (Par, Loc),
+              Subtype_Mark => New_Occurrence_Of (Par, Loc),
               Constraint   => New_Copy_Tree (Constr)));
 
       --  If this is a component subtype for an outer itype, it is not
@@ -9468,7 +9468,7 @@ package body Sem_Ch3 is
              Chars                        => Name_Implemented,
              Pragma_Argument_Associations => New_List (
                Make_Pragma_Argument_Association (Loc,
-                 Expression => New_Reference_To (Subp, Loc)),
+                 Expression => New_Occurrence_Of (Subp, Loc)),
 
                Make_Pragma_Argument_Association (Loc,
                  Expression => Make_Identifier (Loc, Iface_Kind))));
@@ -16664,7 +16664,7 @@ package body Sem_Ch3 is
       then
          D := First_Discriminant (Derived_Base);
          while Present (D) loop
-            Append_Elmt (New_Reference_To (D, Loc), Discs);
+            Append_Elmt (New_Occurrence_Of (D, Loc), Discs);
             Next_Discriminant (D);
          end loop;
       end if;
@@ -18877,7 +18877,7 @@ package body Sem_Ch3 is
 
          elsif Ekind (Priv_Dep) = E_Incomplete_Subtype then
             Set_Subtype_Indication
-              (Parent (Priv_Dep), New_Reference_To (Full_T, Sloc (Priv_Dep)));
+              (Parent (Priv_Dep), New_Occurrence_Of (Full_T, Sloc (Priv_Dep)));
             Set_Etype (Priv_Dep, Full_T);
             Set_Ekind (Priv_Dep, Subtype_Kind (Ekind (Full_T)));
             Set_Analyzed (Parent (Priv_Dep), False);
@@ -18996,7 +18996,7 @@ package body Sem_Ch3 is
             Rewrite (Lo,
               Make_Attribute_Reference (Sloc (Lo),
                 Attribute_Name => Name_First,
-                Prefix => New_Reference_To (T, Sloc (Lo))));
+                Prefix => New_Occurrence_Of (T, Sloc (Lo))));
             Analyze_And_Resolve (Lo);
          end if;
 
@@ -19004,7 +19004,7 @@ package body Sem_Ch3 is
             Rewrite (Hi,
               Make_Attribute_Reference (Sloc (Hi),
                 Attribute_Name => Name_First,
-                Prefix => New_Reference_To (T, Sloc (Hi))));
+                Prefix => New_Occurrence_Of (T, Sloc (Hi))));
             Analyze_And_Resolve (Hi);
          end if;
 
index b09814f..8f93ad3 100644 (file)
@@ -6644,7 +6644,7 @@ package body Sem_Ch4 is
          --  can never assign to its prefix). The Comes_From_Source attribute
          --  needs to be propagated for accurate warnings.
 
-         Ref := New_Reference_To (E, Sloc (P));
+         Ref := New_Occurrence_Of (E, Sloc (P));
          Set_Comes_From_Source (Ref, Comes_From_Source (P));
          Generate_Reference (E, Ref);
       end if;
@@ -7728,7 +7728,7 @@ package body Sem_Ch4 is
                   Success := False;
 
                   if No (Matching_Op) then
-                     Hom_Ref := New_Reference_To (Hom, Sloc (Subprog));
+                     Hom_Ref := New_Occurrence_Of (Hom, Sloc (Subprog));
                      Set_Etype (Call_Node, Any_Type);
                      Set_Parent (Call_Node, Parent (Node_To_Replace));
 
@@ -8188,7 +8188,7 @@ package body Sem_Ch4 is
                Set_Is_Overloaded (Call_Node, False);
 
                if No (Matching_Op) then
-                  Prim_Op_Ref := New_Reference_To (Prim_Op, Sloc (Subprog));
+                  Prim_Op_Ref := New_Occurrence_Of (Prim_Op, Sloc (Subprog));
                   Candidate := Prim_Op;
 
                   Set_Parent (Call_Node, Parent (Node_To_Replace));
index cb8d1c4..927d566 100644 (file)
@@ -2039,7 +2039,7 @@ package body Sem_Ch5 is
                    Defining_Identifier => Subt,
                    Subtype_Indication  =>
                       Make_Subtype_Indication (Loc,
-                        Subtype_Mark => New_Reference_To (Indx, Loc),
+                        Subtype_Mark => New_Occurrence_Of (Indx, Loc),
                         Constraint   =>
                           Make_Range_Constraint (Loc, Relocate_Node (DS))));
                Insert_Before (Loop_Nod, Decl);
@@ -2047,7 +2047,7 @@ package body Sem_Ch5 is
 
                Rewrite (DS,
                  Make_Attribute_Reference (Loc,
-                   Prefix         => New_Reference_To (Subt, Loc),
+                   Prefix         => New_Occurrence_Of (Subt, Loc),
                    Attribute_Name => Attribute_Name (DS)));
 
                Analyze (DS);
index 5231dfd..b3aeb9c 100644 (file)
@@ -2187,10 +2187,10 @@ package body Sem_Ch6 is
                   Make_Defining_Identifier (Loc, Name_uMaster),
                 Constant_Present => True,
                 Object_Definition =>
-                  New_Reference_To (RTE (RE_Master_Id), Loc),
+                  New_Occurrence_Of (RTE (RE_Master_Id), Loc),
                 Expression =>
                   Make_Explicit_Dereference (Loc,
-                    New_Reference_To (RTE (RE_Current_Master), Loc)));
+                    New_Occurrence_Of (RTE (RE_Current_Master), Loc)));
 
             if Present (Declarations (N)) then
                Prepend (Decl, Declarations (N));
@@ -5588,7 +5588,7 @@ package body Sem_Ch6 is
                    Null_Exclusion_Present =>
                      Null_Exclusion_Present (Parent (Formal)),
                    Parameter_Type =>
-                     New_Reference_To (Etype (Formal), Loc),
+                     New_Occurrence_Of (Etype (Formal), Loc),
                    Expression =>
                      Copy_Separate_Tree (Expression (Parent (Formal)))));
 
@@ -5682,11 +5682,11 @@ package body Sem_Ch6 is
 
          begin
             Append_To (Actual_List,
-              New_Reference_To (Defining_Identifier (New_Obj), Loc));
+              New_Occurrence_Of (Defining_Identifier (New_Obj), Loc));
 
             Formal := First_Formal (Spec_Id);
             while Present (Formal) loop
-               Append_To (Actual_List, New_Reference_To (Formal, Loc));
+               Append_To (Actual_List, New_Occurrence_Of (Formal, Loc));
 
                --  Avoid spurious warning on unreferenced formals
 
@@ -5696,7 +5696,7 @@ package body Sem_Ch6 is
 
             Proc_Call :=
               Make_Procedure_Call_Statement (Loc,
-                Name => New_Reference_To (Proc_Id, Loc),
+                Name => New_Occurrence_Of (Proc_Id, Loc),
                 Parameter_Associations => Actual_List);
          end;
 
@@ -5720,7 +5720,7 @@ package body Sem_Ch6 is
 
                    Make_Simple_Return_Statement (Loc,
                      Expression =>
-                       New_Reference_To
+                       New_Occurrence_Of
                          (Defining_Identifier (New_Obj), Loc)))));
 
          Rewrite (Ret_Node, Blk_Stmt);
@@ -9693,13 +9693,13 @@ package body Sem_Ch6 is
            Make_Parameter_Specification (Loc,
              Defining_Identifier => A,
              Parameter_Type      =>
-               New_Reference_To (Etype (First_Formal (S)),
+               New_Occurrence_Of (Etype (First_Formal (S)),
                  Sloc (Etype (First_Formal (S))))),
 
            Make_Parameter_Specification (Loc,
              Defining_Identifier => B,
              Parameter_Type      =>
-               New_Reference_To (Etype (Next_Formal (First_Formal (S))),
+               New_Occurrence_Of (Etype (Next_Formal (First_Formal (S))),
                  Sloc (Etype (Next_Formal (First_Formal (S)))))));
 
          Decl :=
@@ -9709,7 +9709,7 @@ package body Sem_Ch6 is
                  Defining_Unit_Name       => Op_Name,
                  Parameter_Specifications => Formals,
                  Result_Definition        =>
-                   New_Reference_To (Standard_Boolean, Loc)));
+                   New_Occurrence_Of (Standard_Boolean, Loc)));
 
          --  Insert inequality right after equality if it is explicit or after
          --  the derived type when implicit. These entities are created only
index b3721f2..ce63626 100644 (file)
@@ -3368,7 +3368,7 @@ package body Sem_Ch8 is
                --  there are no subtypes involved.
 
                Rewrite (Parameter_Type (Param_Spec),
-                 New_Reference_To
+                 New_Occurrence_Of
                    (Base_Type (Entity (Parameter_Type (Param_Spec))), Loc));
             end if;
 
@@ -3470,7 +3470,7 @@ package body Sem_Ch8 is
 
          Find_Type (Result_Definition (Spec));
          Rewrite (Result_Definition (Spec),
-           New_Reference_To
+           New_Occurrence_Of
              (Base_Type (Entity (Result_Definition (Spec))), Loc));
 
          Body_Node :=
@@ -6625,10 +6625,10 @@ package body Sem_Ch8 is
                      Make_Expanded_Name (Sloc (N),
                        Chars         => Chars (T),
                        Prefix        => New_Copy (Prefix (Prefix (N))),
-                       Selector_Name => New_Reference_To (T, Sloc (N))));
+                       Selector_Name => New_Occurrence_Of (T, Sloc (N))));
 
                else
-                  Rewrite (N, New_Reference_To (T, Sloc (N)));
+                  Rewrite (N, New_Occurrence_Of (T, Sloc (N)));
                end if;
 
                Set_Entity (N, T);
@@ -7836,8 +7836,8 @@ package body Sem_Ch8 is
                 Name =>
                   Make_Expanded_Name (Loc,
                     Chars  => Chars (System_Aux_Id),
-                    Prefix => New_Reference_To (Scope (System_Aux_Id), Loc),
-                    Selector_Name => New_Reference_To (System_Aux_Id, Loc)));
+                    Prefix => New_Occurrence_Of (Scope (System_Aux_Id), Loc),
+                    Selector_Name => New_Occurrence_Of (System_Aux_Id, Loc)));
 
             Set_Entity (Name (Withn), System_Aux_Id);
 
index 7c29784..825eb02 100644 (file)
@@ -2590,7 +2590,7 @@ package body Sem_Dim is
 
       Actual_1 :=
         Make_Type_Conversion (Loc,
-          Subtype_Mark => New_Reference_To (Standard_Long_Long_Float, Loc),
+          Subtype_Mark => New_Occurrence_Of (Standard_Long_Long_Float, Loc),
           Expression   => Relocate_Node (L));
 
       Actual_2 :=
@@ -2606,10 +2606,10 @@ package body Sem_Dim is
 
       New_N :=
          Make_Type_Conversion (Loc,
-           Subtype_Mark => New_Reference_To (New_Id, Loc),
+           Subtype_Mark => New_Occurrence_Of (New_Id, Loc),
            Expression   =>
              Make_Function_Call (Loc,
-               Name => New_Reference_To (RTE (RE_Expon_LLF), Loc),
+               Name => New_Occurrence_Of (RTE (RE_Expon_LLF), Loc),
                Parameter_Associations => New_List (
                  Actual_1, Actual_2)));
 
index 2361123..fff8553 100644 (file)
@@ -871,7 +871,7 @@ package body Sem_Prag is
 
                      if Present (Renamed_Object (Entity (Item))) then
                         Rewrite (Item,
-                          New_Reference_To (Item_Id, Sloc (Item)));
+                          New_Occurrence_Of (Item_Id, Sloc (Item)));
                         Analyze (Item);
                      end if;
 
@@ -2014,7 +2014,7 @@ package body Sem_Prag is
                --  with a reference to the object.
 
                if Present (Renamed_Object (Entity (Item))) then
-                  Rewrite (Item, New_Reference_To (Item_Id, Sloc (Item)));
+                  Rewrite (Item, New_Occurrence_Of (Item_Id, Sloc (Item)));
                   Analyze (Item);
                end if;
 
index 41eb4ce..db1eacf 100644 (file)
@@ -9842,7 +9842,7 @@ package body Sem_Res is
 
          Rewrite (N,
            Make_Qualified_Expression (Loc,
-             Subtype_Mark => New_Reference_To (Typ, Loc),
+             Subtype_Mark => New_Occurrence_Of (Typ, Loc),
              Expression   =>
                Make_Aggregate (Loc, Expressions => Lits)));
 
index a53e245..5062e7e 100644 (file)
@@ -710,7 +710,7 @@ package body Sem_Util is
       Loc := Sloc (N);
 
       if Nkind (N) = N_Defining_Identifier then
-         Obj := New_Reference_To (N, Loc);
+         Obj := New_Occurrence_Of (N, Loc);
 
          --  If this is a formal parameter of a subprogram declaration, and
          --  we are compiling the body, we want the declaration for the
@@ -808,7 +808,7 @@ package body Sem_Util is
           Defining_Identifier => Subt,
           Subtype_Indication =>
             Make_Subtype_Indication (Loc,
-              Subtype_Mark => New_Reference_To (T,  Loc),
+              Subtype_Mark => New_Occurrence_Of (T,  Loc),
               Constraint  =>
                 Make_Index_Or_Discriminant_Constraint (Loc,
                   Constraints => Constraints)));
@@ -1038,7 +1038,7 @@ package body Sem_Util is
           Defining_Identifier => Subt,
           Subtype_Indication =>
             Make_Subtype_Indication (Loc,
-              Subtype_Mark => New_Reference_To (Base_Type (T),  Loc),
+              Subtype_Mark => New_Occurrence_Of (Base_Type (T),  Loc),
               Constraint  =>
                 Make_Index_Or_Discriminant_Constraint (Loc,
                   Constraints => C)));
@@ -3874,7 +3874,7 @@ package body Sem_Util is
                 In_Present  => In_Present (Parent (Formal)),
                 Out_Present => Out_Present (Parent (Formal)),
              Parameter_Type =>
-                  New_Reference_To (Etype (Formal), Loc),
+                  New_Occurrence_Of (Etype (Formal), Loc),
                 Expression =>
                   New_Copy_Tree (Expression (Parent (Formal)))),
               Plist);
index 352ac07..524c14f 100644 (file)
@@ -203,7 +203,7 @@ package body Tbuild is
           Make_Selected_Component (Loc,
             Prefix => New_Copy (Rec),
             Selector_Name =>
-              New_Reference_To (First_Tag_Component (Full_Type), Loc)));
+              New_Occurrence_Of (First_Tag_Component (Full_Type), Loc)));
    end Make_DT_Access;
 
    ------------------------
@@ -718,23 +718,6 @@ package body Tbuild is
       return Nod;
    end New_Op_Node;
 
-   ----------------------
-   -- New_Reference_To --
-   ----------------------
-
-   function New_Reference_To
-     (Def_Id : Entity_Id;
-      Loc    : Source_Ptr) return Node_Id
-   is
-      pragma Assert (Present (Def_Id) and then Nkind (Def_Id) in N_Entity);
-      Occurrence : Node_Id;
-   begin
-      Occurrence := New_Node (N_Identifier, Loc);
-      Set_Chars (Occurrence, Chars (Def_Id));
-      Set_Entity (Occurrence, Def_Id);
-      return Occurrence;
-   end New_Reference_To;
-
    -----------------------
    -- New_Suffixed_Name --
    -----------------------
index 0feebe7..16d6304 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2012, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2013, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -304,13 +304,6 @@ package Tbuild is
    --  follows: Entity is simply a copy of Def_Id. Etype is a copy of Def_Id
    --  for types, and a copy of the Etype of Def_Id for other entities.
 
-   function New_Reference_To
-     (Def_Id : Entity_Id;
-      Loc    : Source_Ptr) return Node_Id;
-   --  This is like New_Occurrence_Of, but it does not set the Etype field. It
-   --  is used from the expander, where Etype fields are generally not set,
-   --  since they are set when the expanded tree is reanalyzed.
-
    function New_Suffixed_Name
      (Related_Id : Name_Id;
       Suffix     : String) return Name_Id;