From: Hristian Kirtchev Date: Mon, 8 Jul 2019 08:14:27 +0000 (+0000) Subject: [Ada] Assertion failure on validity check for Address X-Git-Tag: upstream/12.2.0~23317 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=570d5bbc7b7c5f7eb0eb03660a93687a6698ae7e;p=platform%2Fupstream%2Fgcc.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 cc8978d..b122428 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,11 @@ 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 of an Elaborate_All edge before iterating over the edges of the cycle. diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb index 76639cd..cbae9c8 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 25f6636..169c7a5 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 0000000..91e44ae --- /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 0000000..f1f1646 --- /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;