checks.adb (Minimize_Eliminate_Overflow_Checks): Dont reanalyze if/case expression...
authorRobert Dewar <dewar@adacore.com>
Thu, 4 Oct 2012 09:10:08 +0000 (09:10 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 4 Oct 2012 09:10:08 +0000 (11:10 +0200)
commita40ada7ef7d7a4e6d66af16425d1135d15129404
tree1808e4c1ca1a676ee883f928f954cc4663d53ea7
parentf62b296e6aa2f756683db7cf529e1b5b9d573531
checks.adb (Minimize_Eliminate_Overflow_Checks): Dont reanalyze if/case expression if nothing has changed (just reexpand).

2012-10-04  Robert Dewar  <dewar@adacore.com>

* checks.adb (Minimize_Eliminate_Overflow_Checks): Dont reanalyze
if/case expression if nothing has changed (just reexpand). Stops
case expression from generating incorrect temporary.
* exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow):
Fix cut and paste typo for range analysis in NE (not equal) case.
* sem_eval.adb (Compile_Time_Compare): Small optimization to
catch some more cases.
* types.ads (Suppressed_Or_Checked): New subtype of
Overflow_Check_Type.

From-SVN: r192070
gcc/ada/ChangeLog
gcc/ada/checks.adb
gcc/ada/exp_ch4.adb
gcc/ada/sem_eval.adb
gcc/ada/types.ads