sem_ch13.adb (Replace_Type_Reference): Use correct sloc for the new node.
authorBob Duff <duff@adacore.com>
Mon, 29 Oct 2012 10:00:24 +0000 (10:00 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 29 Oct 2012 10:00:24 +0000 (11:00 +0100)
2012-10-29  Bob Duff  <duff@adacore.com>

* sem_ch13.adb (Replace_Type_Reference): Use correct sloc for
the new node.

From-SVN: r192916

gcc/ada/ChangeLog
gcc/ada/sem_ch13.adb

index 73abf151ff5233fab9626a0cbed269dd4c8799c0..ef0c3209571d3c0d87298db73ac8d16f9fb68bf7 100644 (file)
@@ -1,3 +1,8 @@
+2012-10-29  Bob Duff  <duff@adacore.com>
+
+       * sem_ch13.adb (Replace_Type_Reference): Use correct sloc for
+       the new node.
+
 2012-10-29  Thomas Quinot  <quinot@adacore.com>
 
        * sem_elab.adb: Minor reformatting and code reorganization.
index 521eb80b174426c8efd3d8bd3a95f5de446385d0..94fd6a6d816698602d092cfc4f2dac466e967962 100644 (file)
@@ -5018,17 +5018,18 @@ package body Sem_Ch13 is
          ----------------------------
 
          procedure Replace_Type_Reference (N : Node_Id) is
+            --  Use the Sloc of the usage name below, not the defining name
          begin
             --  Invariant'Class, replace with T'Class (obj)
 
             if Class_Present (Ritem) then
                Rewrite (N,
-                 Make_Type_Conversion (Loc,
+                 Make_Type_Conversion (Sloc (N),
                    Subtype_Mark =>
-                     Make_Attribute_Reference (Loc,
-                       Prefix         => New_Occurrence_Of (T, Loc),
+                     Make_Attribute_Reference (Sloc (N),
+                       Prefix         => New_Occurrence_Of (T, Sloc (N)),
                        Attribute_Name => Name_Class),
-                   Expression   => Make_Identifier (Loc, Object_Name)));
+                   Expression   => Make_Identifier (Sloc (N), Object_Name)));
 
                Set_Entity (Expression (N), Object_Entity);
                Set_Etype  (Expression (N), Typ);
@@ -5036,7 +5037,7 @@ package body Sem_Ch13 is
             --  Invariant, replace with obj
 
             else
-               Rewrite (N, Make_Identifier (Loc, Object_Name));
+               Rewrite (N, Make_Identifier (Sloc (N), Object_Name));
                Set_Entity (N, Object_Entity);
                Set_Etype  (N, Typ);
             end if;
@@ -5422,7 +5423,9 @@ package body Sem_Ch13 is
 
          procedure Replace_Type_Reference (N : Node_Id) is
          begin
-            Rewrite (N, Make_Identifier (Loc, Object_Name));
+            Rewrite (N, Make_Identifier (Sloc (N), Object_Name));
+            --  Use the Sloc of the usage name, not the defining name
+
             Set_Entity (N, Object_Entity);
             Set_Etype (N, Typ);
          end Replace_Type_Reference;
@@ -6622,7 +6625,7 @@ package body Sem_Ch13 is
       --  containing that copy, but Expression (Ident) is a preanalyzed copy
       --  of the expression, preanalyzed just after the freeze point.
 
-      --  Make a copy of the expression to be preanalyed
+      --  Make a copy of the expression to be preanalyzed
 
       Set_Expression (ASN, New_Copy_Tree (Entity (Ident)));