diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2023-05-17 17:05:14 +0200 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2023-06-15 09:59:37 +0200 |
commit | a8c45d3fba65fa4e83903ffcba678eb497c2b07b (patch) | |
tree | fe945ad63ed0e288adffcf563004396842bc2ff1 /config/gthr.m4 | |
parent | 9cdaa52bf8e0529c3d4d13121c440f92113ff05d (diff) | |
download | gcc-a8c45d3fba65fa4e83903ffcba678eb497c2b07b.zip gcc-a8c45d3fba65fa4e83903ffcba678eb497c2b07b.tar.gz gcc-a8c45d3fba65fa4e83903ffcba678eb497c2b07b.tar.bz2 |
ada: Fix internal error on loop iterator filter with -gnatVa
The problem is that the condition of the iterator filter is expanded early,
before it is integrated into an if statement of the loop body, so there is
no place to attach the actions generated by this expansion.
This happens only for simple loops, i.e. with a parameter specification, so
the fix uses the same approach for them as for loops based on iterators.
gcc/ada/
* sinfo.ads (Iterator_Filter): Document field.
* sem_ch5.adb (Analyze_Iterator_Specification): Move comment around.
(Analyze_Loop_Parameter_Specification): Only preanalyze the iterator
filter, if any.
* exp_ch5.adb (Expand_N_Loop_Statement): Analyze the new list built
when an iterator filter is present.
Diffstat (limited to 'config/gthr.m4')
0 files changed, 0 insertions, 0 deletions