diff options
author | Yannick Moy <moy@adacore.com> | 2023-06-08 16:52:24 +0200 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2023-06-20 13:25:28 +0200 |
commit | c11ef75cb2cd60b0c4408aa8ed1898b69b8c946a (patch) | |
tree | 4fe65000f44822b2934c740db09c0998ee4aa911 /gcc | |
parent | 865c5db7cbc16de9887d5941be9a63a7fa03692e (diff) | |
download | gcc-c11ef75cb2cd60b0c4408aa8ed1898b69b8c946a.zip gcc-c11ef75cb2cd60b0c4408aa8ed1898b69b8c946a.tar.gz gcc-c11ef75cb2cd60b0c4408aa8ed1898b69b8c946a.tar.bz2 |
ada: Fix crash on inlining in GNATprove
After the recent change on detection of non-inlining, calls inside
the iterator part of a quantified expression were not considered
as preventing inlining anymore, leading to a crash later on inside
GNATprove. Now fixed.
gcc/ada/
* sem_res.adb (Resolve_Call): Fix change that replaced test for
quantified expressions by the test for potentially unevaluated
contexts. Both should be performed.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/sem_res.adb | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb index f4dfc04..2c8efec 100644 --- a/gcc/ada/sem_res.adb +++ b/gcc/ada/sem_res.adb @@ -7300,6 +7300,15 @@ package body Sem_Res is ("cannot inline & (in potentially unevaluated context)?", N, Nam_UA); + -- Calls are not inlined inside the loop_parameter_specification + -- or iterator_specification of the quantified expression, as they + -- are only preanalyzed. Calls in the predicate part are handled + -- by the previous test on potentially unevaluated expressions. + + elsif In_Quantified_Expression (N) then + Cannot_Inline + ("cannot inline & (in quantified expression)?", N, Nam_UA); + -- Inlining should not be performed during preanalysis elsif Full_Analysis then |