]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[Ada] Fix Compile_Time_(Error|Warning) as non-configuration pragmas
authorPiotr Trojanek <trojanek@adacore.com>
Thu, 3 Feb 2022 23:22:41 +0000 (00:22 +0100)
committerPierre-Marie de Rodat <derodat@adacore.com>
Wed, 11 May 2022 08:53:21 +0000 (08:53 +0000)
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.

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.

gcc/ada/sem_prag.adb
gcc/ada/snames.ads-tmpl

index 7e13d4933bd40f18e8de2ab1df89afe68b5aaf13..0bee4a179c5dcde661f1ac8ed34b35f36d563b69 100644 (file)
@@ -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;
 
          -----------------------------
index 5f7d6b7687b9684e4d865a2afe761a27981540be..dc09e0768ed55db69c0312c91def75d080214453 100644 (file)
@@ -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,