From bfb1147ca896f985a2268b7b6a0ba4b36394f8cc Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Wed, 14 Nov 2018 11:41:53 +0000 Subject: [Ada] Fix assertion failure on pragma Compile_Time_Error in generic unit There is no point in validating 'Alignment or 'Size of an entity declared in a generic unit after the back-end has been run, since such an entity is not passed to the back-end, and this can even lead to an assertion failure. 2018-11-14 Eric Botcazou gcc/ada/ * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Don't register a compile-time warning or error for 'Alignment or 'Size of an entity declared in a generic unit. gcc/testsuite/ * gnat.dg/compile_time_error1.adb, gnat.dg/compile_time_error1.ads, gnat.dg/compile_time_error1_pkg.ads: New testcase. From-SVN: r266127 --- gcc/ada/ChangeLog | 6 ++++++ gcc/ada/sem_prag.adb | 1 + 2 files changed, 7 insertions(+) (limited to 'gcc/ada') diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index d4dcd8c..82329ac 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2018-11-14 Eric Botcazou + + * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Don't + register a compile-time warning or error for 'Alignment or 'Size + of an entity declared in a generic unit. + 2018-11-14 Justin Squirek * sem_ch8.adb (Use_One_Package): Add test for out-of-scope diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index a96d148..cda8629 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -7545,6 +7545,7 @@ package body Sem_Prag is begin if Nkind (N) = N_Attribute_Reference and then Is_Entity_Name (Prefix (N)) + and then not Is_Generic_Unit (Scope (Entity (Prefix (N)))) then declare Attr_Id : constant Attribute_Id := -- cgit v1.1