+2014-05-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ Backport from mainline
+ 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-28 Georg-Johann Lay <avr@gjlay.de>
PR target/61044
== (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);
+2014-05-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ Backport from mainline
+ 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/overflow_fixed.adb: New test.
+
2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/aliasing1.adb (dg-final): Robustify pattern matching.
--- /dev/null
+-- { 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;