aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2023-03-08 15:30:41 +0100
committerMarc Poulhiès <poulhies@adacore.com>2023-05-25 09:44:18 +0200
commit70ff3a2e4c85d2d48717067708631b56aa929a6e (patch)
tree58fd126213adfb56630f0a3ed78d986cb26bc9ab /gcc
parent50832e4a92988e3c3388fa24871cd960828ac3f7 (diff)
downloadgcc-70ff3a2e4c85d2d48717067708631b56aa929a6e.zip
gcc-70ff3a2e4c85d2d48717067708631b56aa929a6e.tar.gz
gcc-70ff3a2e4c85d2d48717067708631b56aa929a6e.tar.bz2
ada: Fix copying of quantified expressions
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/sem_util.adb5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index b83c759..c9aa767 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;