double-int.c (div_and_round_double): Use the proper predicate to detect a negative quotient.
* double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper predicate to detect a negative quotient. From-SVN: r210981
This commit is contained in:
parent
5c1bc275f4
commit
5e67547dd5
|
@ -1,3 +1,8 @@
|
|||
2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
|
||||
predicate to detect a negative quotient.
|
||||
|
||||
2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
|
||||
|
|
|
@ -588,7 +588,7 @@ div_and_round_double (unsigned code, int uns,
|
|||
== (unsigned HOST_WIDE_INT) htwice)
|
||||
&& (labs_den <= ltwice)))
|
||||
{
|
||||
if (*hquo < 0)
|
||||
if (quo_neg)
|
||||
/* quo = quo - 1; */
|
||||
add_double (*lquo, *hquo,
|
||||
(HOST_WIDE_INT) -1, (HOST_WIDE_INT) -1, lquo, hquo);
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gnat.dg/overflow_fixed.adb: New test.
|
||||
|
||||
2014-05-27 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR c/56724
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
-- { dg-do run }
|
||||
-- { dg-options "-gnato -O" }
|
||||
|
||||
procedure Overflow_Fixed is
|
||||
|
||||
type Unsigned_8_Bit is mod 2**8;
|
||||
|
||||
procedure Fixed_To_Eight (Value : Duration) is
|
||||
Item : Unsigned_8_Bit;
|
||||
begin
|
||||
Item := Unsigned_8_Bit(Value);
|
||||
raise Program_Error;
|
||||
exception
|
||||
when Constraint_Error => null; -- expected case
|
||||
end;
|
||||
|
||||
begin
|
||||
Fixed_To_Eight (-0.5);
|
||||
end;
|
Loading…
Reference in New Issue