aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2022-09-12 15:33:15 +0200
committerMarc Poulhiès <poulhies@adacore.com>2022-09-26 11:02:30 +0200
commit2ef56cae72631a7349b4cb2b6bd843f05789e231 (patch)
tree811f7168c7f66773661bb425b12d8dbce5865670
parent5549d2695a36f1cd97a1a5d2089c9c5a7f3fb03b (diff)
downloadgcc-2ef56cae72631a7349b4cb2b6bd843f05789e231.zip
gcc-2ef56cae72631a7349b4cb2b6bd843f05789e231.tar.gz
gcc-2ef56cae72631a7349b4cb2b6bd843f05789e231.tar.bz2
ada: Delay expansion of iterated component association
When preanalysing spec expression (e.g. expression of an expression function), the name of iterator specification within an iterated component association should not be expanded, especially in GNATprove mode. gcc/ada/ * sem_ch5.adb (Analyze_Iterator_Specification): Delay expansion of for iterated component association just like it is done within quantified expression.
-rw-r--r--gcc/ada/sem_ch5.adb9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/ada/sem_ch5.adb b/gcc/ada/sem_ch5.adb
index 17bf6d9..6d07f3d 100644
--- a/gcc/ada/sem_ch5.adb
+++ b/gcc/ada/sem_ch5.adb
@@ -2429,11 +2429,12 @@ package body Sem_Ch5 is
if not Is_Entity_Name (Iter_Name)
- -- When the context is a quantified expression, the renaming
- -- declaration is delayed until the expansion phase if we are
- -- doing expansion.
+ -- When the context is a quantified expression or iterated component
+ -- association, the renaming declaration is delayed until the
+ -- expansion phase if we are doing expansion.
- and then (Nkind (Parent (N)) /= N_Quantified_Expression
+ and then (Nkind (Parent (N)) not in N_Quantified_Expression
+ | N_Iterated_Component_Association
or else (Operating_Mode = Check_Semantics
and then not GNATprove_Mode))