diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2022-09-12 15:33:15 +0200 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2022-09-26 11:02:30 +0200 |
commit | 2ef56cae72631a7349b4cb2b6bd843f05789e231 (patch) | |
tree | 811f7168c7f66773661bb425b12d8dbce5865670 | |
parent | 5549d2695a36f1cd97a1a5d2089c9c5a7f3fb03b (diff) | |
download | gcc-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.adb | 9 |
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)) |