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-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=13f08f0368c33c9379540e9a1ca82f3570c86ff3;p=gcc.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 d3acabecc29..f28fac2f21b 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 20af910b814..811644d2d3c 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