OSDN Git Service

* sem_res.adb (Resolve_Call): if the call is actually an indexing
authorbosch <bosch@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 26 Oct 2001 00:47:09 +0000 (00:47 +0000)
committerbosch <bosch@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 26 Oct 2001 00:47:09 +0000 (00:47 +0000)
        operation on the result of a parameterless call, perform elaboration
        check after the node has been properly rewritten.

* sem_ch12.adb (Copy_Generic_Node): after the proper body has been
        inlined within the generic tree, the defining identifier is not a
        compilation_unit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46510 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/sem_ch12.adb
gcc/ada/sem_res.adb

index b6d4909..4e0ae19 100644 (file)
@@ -1,5 +1,15 @@
 2001-10-25  Ed Schonberg <schonber@gnat.com>
 
+       * sem_res.adb (Resolve_Call): if the call is actually an indexing 
+        operation on the result of a parameterless call, perform elaboration 
+        check after the node has been properly rewritten.
+       
+       * sem_ch12.adb (Copy_Generic_Node): after the proper body has been 
+        inlined within the generic tree, the defining identifier is not a 
+        compilation_unit.
+
+2001-10-25  Ed Schonberg <schonber@gnat.com>
+
        * sem_res.adb (Resolve): special-case resolution of Null in an 
          instance or an inlined body to avoid view conflicts.
        
index 8c868b2..4d372d6 100644 (file)
@@ -4499,9 +4499,10 @@ package body Sem_Ch12 is
                     Empty, Instantiating => False);
 
                --  Now place the original proper body in the original
-               --  generic unit.
+               --  generic unit. This is a body, not a compilation unit.
 
                Rewrite (N, Proper_Body (Unit (Subunit)));
+               Set_Is_Compilation_Unit (Defining_Entity (N), False);
                Set_Was_Originally_Stub (N);
 
                --  Finally replace the body of the subunit with its copy,
index ef4ca9e..bf1a715 100644 (file)
@@ -3130,7 +3130,6 @@ package body Sem_Res is
             Index_Node : Node_Id;
 
          begin
-            Check_Elab_Call (N);
 
             if Component_Type (Etype (Nam)) /= Any_Type then
                Index_Node :=
@@ -3147,6 +3146,7 @@ package body Sem_Res is
                Set_Etype (Prefix (N), Etype (Nam));
                Set_Etype (N, Typ);
                Resolve_Indexed_Component (N, Typ);
+               Check_Elab_Call (Prefix (N));
             end if;
 
             return;