From: Eric Botcazou <[email protected]>
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.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/sem_eval.adb | 3 +++
1 file changed, 3 insertions(+)
diff --git a/gcc/ada/sem_eval.adb b/gcc/ada/sem_eval.adb
index a880acabad8..9ea042ba0d3 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;
--
2.43.0