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.
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;