]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR rtl-optimization/13318 (ICE: floating point exception in the loop...
authorEric Botcazou <ebotcazou@libertysurf.fr>
Thu, 11 Dec 2003 08:13:51 +0000 (09:13 +0100)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Thu, 11 Dec 2003 08:13:51 +0000 (08:13 +0000)
Backport from mainline:

2003-12-07  Eric Botcazou  <ebotcazou@libertysurf.fr>

PR optimization/13318
* loop.c (express_from): Protect integer division from overflow.

From-SVN: r74532

gcc/ChangeLog
gcc/loop.c
gcc/testsuite/ChangeLog

index 44955b318e69ffa6d24913f01f5d411c391756a7..8d6ca290eeaa9f1c675cc1e5b361a3ba16dfa15c 100644 (file)
@@ -1,3 +1,12 @@
+2003-12-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       Backport from mainline:
+
+       2003-12-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR optimization/13318
+       * loop.c (express_from): Protect integer division from overflow.
+
 2003-12-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        Backport from mainline:
index c0888fa6ce28d66b5174a3cbc83bb617f6fa1958..1c5409873bfe8c5549a48412833945e1fdd246eb 100644 (file)
@@ -7300,6 +7300,9 @@ express_from (g1, g2)
       && GET_CODE (g2->mult_val) == CONST_INT)
     {
       if (g1->mult_val == const0_rtx
+         || (g1->mult_val == constm1_rtx
+             && INTVAL (g2->mult_val)
+                == (HOST_WIDE_INT) 1 << (HOST_BITS_PER_WIDE_INT - 1))
          || INTVAL (g2->mult_val) % INTVAL (g1->mult_val) != 0)
        return NULL_RTX;
       mult = GEN_INT (INTVAL (g2->mult_val) / INTVAL (g1->mult_val));
index 5577bcd748961076b02f5550fd3088a0733b3809..eda5f3796b18de9e246f5fb6e5020fde630eedeb 100644 (file)
@@ -1,3 +1,11 @@
+2003-12-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       Backport from mainline:
+
+       2003-12-07  Wolfgang Bangerth  <bangerth@dealii.org>
+
+       * gcc.dg/overflow-1.c: New test.
+
 2003-12-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        Backport from mainline: