]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/ada/exp_ch4.adb
checks.adb (Determine_Range): Add Assume_Valid parameter
authorRobert Dewar <dewar@adacore.com>
Tue, 7 Apr 2009 13:55:31 +0000 (13:55 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 7 Apr 2009 13:55:31 +0000 (15:55 +0200)
commitc800f862877b728756eb0a41c6ed12cf1fdc3c45
treef813cf5f3512ec45d3d80589002e3c400c361b66
parent9d00840d08b39852023715be90d3499ad677aa38
checks.adb (Determine_Range): Add Assume_Valid parameter

2009-04-07  Robert Dewar  <dewar@adacore.com>

* checks.adb (Determine_Range): Add Assume_Valid parameter

* checks.ads (Determine_Range): Add Assume_Valid parameter

* errout.adb (Error_Msg_NEL): Use Suppress_Loop_Warnings rather than
 Is_Null_Loop to suppress warnings in a loop body.

* exp_ch4.adb:
(Rewrite_Comparison): Major rewrite to accomodate invalid values

* exp_ch5.adb:
(Expand_N_Loop_Statement): Delete loop known not to execute

* opt.ads:
(Assume_No_Invalid_Values): Now set to False, and as documented, this
 fully enables the proper handling of invalid values.

* sem_attr.adb:
New calling sequence for Is_In_Range

* sem_ch5.adb:
(Analyze_Iteration_Scheme): Accomodate possible invalid values
 in determining if a loop range is null.

* sem_eval.adb:
(Is_In_Range): Add Assume_Valid parameter
(Is_Out_Of_Range): Add Assume_Valid_Parameter
(Compile_Time_Compare): Major rewrite to accomodate invalid values and
 also to do more accurate and complete range analysis, catching more
 cases.

* sem_eval.ads:
(Is_In_Range): Add Assume_Valid parameter
(Is_Out_Of_Range): Add Assume_Valid_Parameter

* sem_util.adb:
New calling sequence for Is_In_Range

* sinfo.adb:
(Suppress_Loop_Warnings): New flag

* sinfo.ads:
(Is_Null_Loop): Update documentation
(Suppress_Loop_Warnings): New flag

* gnat_ugn.texi: Document -gnatB switch

From-SVN: r145672
15 files changed:
gcc/ada/ChangeLog
gcc/ada/checks.adb
gcc/ada/checks.ads
gcc/ada/errout.adb
gcc/ada/exp_ch4.adb
gcc/ada/exp_ch5.adb
gcc/ada/gnat_ugn.texi
gcc/ada/opt.ads
gcc/ada/sem_attr.adb
gcc/ada/sem_ch5.adb
gcc/ada/sem_eval.adb
gcc/ada/sem_eval.ads
gcc/ada/sem_util.adb
gcc/ada/sinfo.adb
gcc/ada/sinfo.ads