From: Ed Schonberg Date: Fri, 26 Oct 2001 00:47:09 +0000 (+0000) Subject: sem_res.adb (Resolve_Call): if the call is actually an indexing operation on the... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6f311316194c0494cc43c16be10b434ca562a8df;p=gcc.git sem_res.adb (Resolve_Call): if the call is actually an indexing operation on the result of a parameterless... * 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. From-SVN: r46510 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index b6d49090482..4e0ae19b120 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,13 @@ +2001-10-25 Ed Schonberg + + * 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 * sem_res.adb (Resolve): special-case resolution of Null in an diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb index 8c868b26b35..4d372d68a75 100644 --- a/gcc/ada/sem_ch12.adb +++ b/gcc/ada/sem_ch12.adb @@ -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, diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb index ef4ca9e346c..bf1a7152ac1 100644 --- a/gcc/ada/sem_res.adb +++ b/gcc/ada/sem_res.adb @@ -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;