diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2023-03-08 15:30:41 +0100 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2023-05-25 09:44:18 +0200 |
commit | 70ff3a2e4c85d2d48717067708631b56aa929a6e (patch) | |
tree | 58fd126213adfb56630f0a3ed78d986cb26bc9ab /gcc | |
parent | 50832e4a92988e3c3388fa24871cd960828ac3f7 (diff) | |
download | gcc-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.adb | 5 |
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; |