diff options
author | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2003-12-07 12:57:13 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2003-12-07 12:57:13 +0000 |
commit | fd25e9579d7d7c3c97f0158d0b0b58845deaf7d5 (patch) | |
tree | c7a279fc1d15b2c2928f94eb4317e4a017ab688b /gcc/loop.c | |
parent | 5c6ef9bee008cc943f4387f405e8211cdd58c9e0 (diff) | |
download | gcc-fd25e9579d7d7c3c97f0158d0b0b58845deaf7d5.zip gcc-fd25e9579d7d7c3c97f0158d0b0b58845deaf7d5.tar.gz gcc-fd25e9579d7d7c3c97f0158d0b0b58845deaf7d5.tar.bz2 |
re PR rtl-optimization/13318 (ICE: floating point exception in the loop optimizer)
PR optimization/13318
* loop.c (express_from): Protect integer division from overflow.
From-SVN: r74387
Diffstat (limited to 'gcc/loop.c')
-rw-r--r-- | gcc/loop.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -7196,6 +7196,9 @@ express_from (struct induction *g1, struct induction *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)); |