From: Hristian Kirtchev Date: Mon, 8 Jul 2019 08:14:27 +0000 (+0000) Subject: [Ada] Assertion failure on validity check for Address X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=570d5bbc7b7c5f7eb0eb03660a93687a6698ae7e;p=gcc.git [Ada] Assertion failure on validity check for Address This patch corrects the verification of 'Address clauses to avoid processing a clause where the prefix of the attribute is a generic formal object. 2019-07-08 Hristian Kirtchev gcc/ada/ * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not register an address clause when its prefix denotes a generic formal object. gcc/testsuite/ * gnat.dg/addr13.adb, gnat.dg/addr13.ads: New testcase. From-SVN: r273218 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index cc8978d7918..b1224281640 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2019-07-08 Hristian Kirtchev + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not + register an address clause when its prefix denotes a generic + formal object. + 2019-07-08 Hristian Kirtchev * bindo-diagnostics.adb (Diagnose_Cycle): Capture the presence diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb index 76639cd301f..cbae9c8d4a3 100644 --- a/gcc/ada/sem_ch13.adb +++ b/gcc/ada/sem_ch13.adb @@ -5145,6 +5145,7 @@ package body Sem_Ch13 is -- aspect case properly. if Is_Object (O_Ent) + and then not Is_Generic_Formal (O_Ent) and then not Is_Generic_Type (Etype (U_Ent)) and then Address_Clause_Overlay_Warnings then diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 25f6636f5f2..169c7a58193 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2019-07-08 Hristian Kirtchev + + * gnat.dg/addr13.adb, gnat.dg/addr13.ads: New testcase. + 2019-07-08 Ed Schonberg * gnat.dg/entry1.adb, gnat.dg/entry1.ads: New testcase. diff --git a/gcc/testsuite/gnat.dg/addr13.adb b/gcc/testsuite/gnat.dg/addr13.adb new file mode 100644 index 00000000000..91e44ae189d --- /dev/null +++ b/gcc/testsuite/gnat.dg/addr13.adb @@ -0,0 +1,9 @@ +-- { dg-do compile } + +package body Addr13 is + procedure Overlay is + Over : Integer with Address => Gen_Obj'Address; + begin + Over := 123; + end Overlay; +end Addr13; diff --git a/gcc/testsuite/gnat.dg/addr13.ads b/gcc/testsuite/gnat.dg/addr13.ads new file mode 100644 index 00000000000..f1f1646b9df --- /dev/null +++ b/gcc/testsuite/gnat.dg/addr13.ads @@ -0,0 +1,5 @@ +generic + Gen_Obj : in out Integer; +package Addr13 is + procedure Overlay; +end Addr13;