From: Piotr Trojanek <[email protected]>
While visiting the AST as part of routine New_Copy_Tree we maintain
an EWA_Level variable in a stack-like fashion. This worked fine for
expression with actions nodes but not for quantified expressions.
gcc/ada/
* sem_util.adb (Visit_Node): Decrement EWA_Level with the same condition
as when it was incremented.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/sem_util.adb | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index b83c75939c7..c9aa76707a5 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -24383,7 +24383,10 @@ package body Sem_Util is
then
EWA_Inner_Scope_Level := EWA_Inner_Scope_Level - 1;
- elsif Nkind (N) = N_Expression_With_Actions then
+ elsif Nkind (N) = N_Expression_With_Actions
+ or else
+ (Nkind (N) = N_Quantified_Expression and then Expander_Active)
+ then
EWA_Level := EWA_Level - 1;
end if;
end Visit_Node;
--
2.40.0