From: Ed Schonberg Date: Mon, 3 Dec 2001 19:06:53 +0000 (+0000) Subject: sem_ch12.adb (Instantiate_Package_Body): Protect against double instantiation of... X-Git-Tag: prereleases/libstdc++-3.0.95~561 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=13f08f0368c33c9379540e9a1ca82f3570c86ff3;p=thirdparty%2Fgcc.git sem_ch12.adb (Instantiate_Package_Body): Protect against double instantiation of a body that contains an inlined body. * sem_ch12.adb (Instantiate_Package_Body): Protect against double instantiation of a body that contains an inlined body. From-SVN: r47556 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index d3acabecc293..f28fac2f21bd 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2001-12-03 Ed Schonberg + + * sem_ch12.adb (Instantiate_Package_Body): Protect against double + instantiation of a body that contains an inlined body. + 2001-12-03 Ed Schonberg * sem_ch12.adb: diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb index 20af910b814c..811644d2d3c0 100644 --- a/gcc/ada/sem_ch12.adb +++ b/gcc/ada/sem_ch12.adb @@ -6503,6 +6503,14 @@ package body Sem_Ch12 is begin Gen_Body_Id := Corresponding_Body (Gen_Decl); + + -- The instance body may already have been processed, as the parent + -- of another instance that is inlined. (Load_Parent_Of_Generic). + + if Present (Corresponding_Body (Instance_Spec (Inst_Node))) then + return; + end if; + Expander_Mode_Save_And_Set (Body_Info.Expander_Status); if No (Gen_Body_Id) then