https://gcc.gnu.org/g:50f023c0d7d9332c2ead2c95c2f9863600ced4ce

commit r15-4135-g50f023c0d7d9332c2ead2c95c2f9863600ced4ce
Author: Ghjuvan Lacambre <lacam...@adacore.com>
Date:   Mon Sep 2 16:08:16 2024 +0200

    ada: sem_prag.adb: ignore compile_time_{warning,error} in CodePeer mode
    
    GNAT sometimes needs help from the GCC back-end in order to check
    whether Compile_Time_{Warning,Error} are true. As CodePeer does not have
    access to a GCC back-end, it is unable to perform these checks. Thus we
    need to remove said pragmas from the tree.
    
    gcc/ada/ChangeLog:
            * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Turn
            Compile_Time pragmas into null nodes

Diff:
---
 gcc/ada/sem_prag.adb | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
index 2d31c71f366e..0d43929df720 100644
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_prag.adb
@@ -8148,6 +8148,11 @@ package body Sem_Prag is
          Check_Arg_Is_OK_Static_Expression (Arg2, Standard_String);
          Analyze_And_Resolve (Arg1x, Standard_Boolean);
 
+         if CodePeer_Mode then
+               Rewrite (N, Make_Null_Statement (Loc));
+               return;
+         end if;
+
          --  In GNATprove mode, pragma Compile_Time_Error is translated as
          --  a Check pragma in GNATprove mode, handled as an assumption in
          --  GNATprove. This is correct as the compiler will issue an error

Reply via email to