From: Ghjuvan Lacambre <lacam...@adacore.com> 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 Tested on x86_64-pc-linux-gnu, committed on master. --- 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 2d31c71f366..0d43929df72 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 -- 2.43.0