aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2024-11-08 15:35:27 +0100
committerMarc Poulhiès <dkm@gcc.gnu.org>2024-11-18 15:06:55 +0100
commit70faad19613748c7894afafac2703d7aa856a7c6 (patch)
treeefc2655815066dfb82805643df05e8ced33ee405
parentb4fd15d8bea6224a431e062d846459cc57724e41 (diff)
downloadgcc-70faad19613748c7894afafac2703d7aa856a7c6.zip
gcc-70faad19613748c7894afafac2703d7aa856a7c6.tar.gz
gcc-70faad19613748c7894afafac2703d7aa856a7c6.tar.bz2
ada: Fix small oversight in removal of N_Unchecked_Expression node
In addition to Resolve_Indexed_Component, Eval_Indexed_Component can also set the Do_Range_Check flag on the expressions of an N_Indexed_Component node through the call on Check_Non_Static_Context, so this also needs to be blocked by the Kill_Range_Check flag. gcc/ada/ChangeLog: * sem_eval.adb (Eval_Indexed_Component): Clear Do_Range_Check on the expressions if Kill_Range_Check is set on the node.
-rw-r--r--gcc/ada/sem_eval.adb3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/ada/sem_eval.adb b/gcc/ada/sem_eval.adb
index a880aca..9ea042b 100644
--- a/gcc/ada/sem_eval.adb
+++ b/gcc/ada/sem_eval.adb
@@ -2629,6 +2629,9 @@ package body Sem_Eval is
Expr := First (Expressions (N));
while Present (Expr) loop
Check_Non_Static_Context (Expr);
+ if Kill_Range_Check (N) then
+ Set_Do_Range_Check (Expr, False);
+ end if;
Next (Expr);
end loop;