Uses of Compile_Time_Error and Compile_Time_Warning as configuration
pragmas were detected with a custom check in semantic analysis. Now they
are detected with an existing general check in parser.

Tested on x86_64-pc-linux-gnu, committed on trunk

gcc/ada/

        * sem_prag.adb (Analyze_Pragma): Remove custom check for
        Compile_Time_Error and Compile_Time_Warning pragmas.
        * snames.ads-tmpl (Compile_Time_Error, Compile_Time_Warning):
        Move beyond Last_Configuration_Pragma_Name.
diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_prag.adb
@@ -14322,15 +14322,6 @@ package body Sem_Prag is
          when Pragma_Compile_Time_Error | Pragma_Compile_Time_Warning =>
             GNAT_Pragma;
 
-            --  These pragmas rely on the context. In adc files they raise
-            --  Constraint_Error. Ban them from use as configuration pragmas
-            --  even in cases where such a use could work.
-
-            if Is_Configuration_Pragma then
-               Error_Pragma
-                  ("pragma% is not allowed as a configuration pragma");
-            end if;
-
             Process_Compile_Time_Warning_Or_Error;
 
          -----------------------------


diff --git a/gcc/ada/snames.ads-tmpl b/gcc/ada/snames.ads-tmpl
--- a/gcc/ada/snames.ads-tmpl
+++ b/gcc/ada/snames.ads-tmpl
@@ -414,8 +414,6 @@ package Snames is
    Name_Check_Float_Overflow           : constant Name_Id := N + $; -- GNAT
    Name_Check_Name                     : constant Name_Id := N + $; -- GNAT
    Name_Check_Policy                   : constant Name_Id := N + $; -- GNAT
-   Name_Compile_Time_Error             : constant Name_Id := N + $; -- GNAT
-   Name_Compile_Time_Warning           : constant Name_Id := N + $; -- GNAT
    Name_Component_Alignment            : constant Name_Id := N + $; -- GNAT
    Name_Convention_Identifier          : constant Name_Id := N + $; -- GNAT
    Name_Debug_Policy                   : constant Name_Id := N + $; -- GNAT
@@ -508,6 +506,8 @@ package Snames is
    Name_Check                          : constant Name_Id := N + $; -- GNAT
    Name_Comment                        : constant Name_Id := N + $; -- GNAT
    Name_Common_Object                  : constant Name_Id := N + $; -- GNAT
+   Name_Compile_Time_Error             : constant Name_Id := N + $; -- GNAT
+   Name_Compile_Time_Warning           : constant Name_Id := N + $; -- GNAT
    Name_Complete_Representation        : constant Name_Id := N + $; -- GNAT
    Name_Complex_Representation         : constant Name_Id := N + $; -- GNAT
    Name_Constant_After_Elaboration     : constant Name_Id := N + $; -- GNAT
@@ -1738,8 +1738,6 @@ package Snames is
       Pragma_Check_Float_Overflow,
       Pragma_Check_Name,
       Pragma_Check_Policy,
-      Pragma_Compile_Time_Error,
-      Pragma_Compile_Time_Warning,
       Pragma_Component_Alignment,
       Pragma_Convention_Identifier,
       Pragma_Debug_Policy,
@@ -1819,6 +1817,8 @@ package Snames is
       Pragma_Check,
       Pragma_Comment,
       Pragma_Common_Object,
+      Pragma_Compile_Time_Error,
+      Pragma_Compile_Time_Warning,
       Pragma_Complete_Representation,
       Pragma_Complex_Representation,
       Pragma_Constant_After_Elaboration,


Reply via email to