From e8de28890655d7766bea5263afcf9889393ea000 Mon Sep 17 00:00:00 2001 From: Viljar Indus Date: Tue, 2 Sep 2025 15:20:54 +0300 Subject: [PATCH] ada: Avoid ghost context errors when preanalyzing Loop_Invariant gcc/ada/ChangeLog: * sem_prag.adb (Analyze_Pragma): Disable context checks for the preanalysis of the expression for Loop_Invariant pragmas as the ghost region for the pragma has not been set up yet. --- gcc/ada/sem_prag.adb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index b1fefa8a297..f75f1f7eb4d 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -14455,9 +14455,15 @@ package body Sem_Prag is -- Perform preanalysis to deal with embedded Loop_Entry -- attributes. + -- + -- But ignore the ghost context checks for now. The expression + -- will be reanalyzed with the correct ghost region once the + -- pragma has been converted to pragma check. + Ghost_Context_Checks_Disabled := True; Preanalyze_And_Resolve_Assert_Expression (Arg_Check, Any_Boolean); + Ghost_Context_Checks_Disabled := False; end if; -- Implement Assert[_And_Cut]/Assume/Loop_Invariant by generating -- 2.47.3