[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Thu, 23 Jul 2009 09:51:19 +0000 (11:51 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 23 Jul 2009 09:51:19 +0000 (11:51 +0200)
commit5d5e9775770b0e2dbfbe88ce19ecd3d7debe8975
tree7ce25f72e0124a8a2005e43663639a9d21ed6a41
parent27f55f3c3274e8312712ebfdada668352881aeae
[multiple changes]

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

* exp_ch4.adb (Analyze_N_Op_Rem): Assume operands are valid when
checking ranges for mod/rem to see if conditional jump will be
generated.
(Analyze_N_Op_Rem): Don't try to check actual lower bounds for
generating special -1 test for rem, generate it whenever both
operands can be negative (match circuit in Sem_Res).
(Analyze_N_Op_Rem): Don't go to base type, no longer needed and
destroys memory of positive range.
* sem_res.adb (Resolve_Arithmetic_Op): Assume operands are valid when
checking ranges for mod/rem to see if conditional jump will be generated

2009-07-23  Ed Schonberg  <schonberg@adacore.com>

* exp_ch3.adb (Build_Equivalent_Record_Aggregate): If the type of a
scalar components has non-static bounds, the equivalent aggregate
cannot be built, even if the expression is static, because range checks
will be generated.

From-SVN: r149987
gcc/ada/ChangeLog
gcc/ada/exp_ch3.adb
gcc/ada/exp_ch4.adb
gcc/ada/sem_res.adb