From: Viljar Indus <in...@adacore.com> Create a ghost region for pragma annotate so that we are able to analyze the entity references correctly inside the pragma.
gcc/ada/ChangeLog: * sem_prag.adb: Create a ghost region for pragma annotate before analyzing its arguments. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/sem_prag.adb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index 753ccda66756..661d4401d7a2 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -14149,6 +14149,9 @@ package body Sem_Prag is Expr : Node_Id; Nam_Arg : Node_Id; + Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config; + -- Save the Ghost-related attributes to restore on exit + -------------------------- -- Inferred_String_Type -- -------------------------- @@ -14226,6 +14229,10 @@ package body Sem_Prag is end if; end if; + -- Set the ghost mode before analyzing all of the arguments + + Set_Ghost_Mode (N); + -- Continue the processing with last argument removed for now Check_Arg_Is_Identifier (Arg1); @@ -14271,6 +14278,8 @@ package body Sem_Prag is Next (Arg); end loop; end if; + + Restore_Ghost_Region (Saved_Ghost_Config); end Annotate; ------------------------------------------------- -- 2.43.0