diff options
author | Javier Miranda <miranda@adacore.com> | 2019-07-09 07:54:19 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2019-07-09 07:54:19 +0000 |
commit | 5da544339b2b3b3d00d3dd5b91c06d2d09a386b2 (patch) | |
tree | 36f448a457bcf9b1d7ea86364fc4e3743f7c5b83 /gcc/ada | |
parent | ff606db0166573fee17f6d81895f7d882fd15169 (diff) | |
download | gcc-5da544339b2b3b3d00d3dd5b91c06d2d09a386b2.zip gcc-5da544339b2b3b3d00d3dd5b91c06d2d09a386b2.tar.gz gcc-5da544339b2b3b3d00d3dd5b91c06d2d09a386b2.tar.bz2 |
[Ada] Missing runtime range checks with -gnatVa
Under validity checking mode the compiler may silently skip generating
code to perform runtime range checks.
2019-07-09 Javier Miranda <miranda@adacore.com>
gcc/ada/
* exp_util.adb (Remove_Side_Effects): Preserve the
Do_Range_Check flag.
gcc/testsuite/
* gnat.dg/range_check3.adb, gnat.dg/range_check3_pkg.adb,
gnat.dg/range_check3_pkg.ads: New testcase.
From-SVN: r273278
Diffstat (limited to 'gcc/ada')
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/exp_util.adb | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 17c27abc..e5aba8b 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2019-07-09 Javier Miranda <miranda@adacore.com> + + * exp_util.adb (Remove_Side_Effects): Preserve the + Do_Range_Check flag. + 2019-07-09 Yannick Moy <moy@adacore.com> * sinfo.ads: Refine comment for Do_Range_Check. diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb index 6f73ec3..77809bc 100644 --- a/gcc/ada/exp_util.adb +++ b/gcc/ada/exp_util.adb @@ -11693,6 +11693,10 @@ package body Exp_Util is Set_Assignment_OK (Res, Assignment_OK (Exp)); + -- Preserve the Do_Range_Check flag in all copies. + + Set_Do_Range_Check (Res, Do_Range_Check (Exp)); + -- Finally rewrite the original expression and we are done Rewrite (Exp, Res); |