re PR middle-end/42099 (Error in 64-bit division for 32-bit target)
./: PR middle-end/42099 * expmed.c (expand_divmod): Don't shift HOST_WIDE_INT value more than HOST_BITS_PER_WIDE_INT. testsuite/: PR middle-end/42099 * gcc.c-torture/execute/20091229-1.c: New test. From-SVN: r155516
This commit is contained in:
parent
53bc54ecc0
commit
f6c1336cbe
|
@ -1,3 +1,9 @@
|
||||||
|
2009-12-29 Ian Lance Taylor <iant@google.com>
|
||||||
|
|
||||||
|
PR middle-end/42099
|
||||||
|
* expmed.c (expand_divmod): Don't shift HOST_WIDE_INT value more
|
||||||
|
than HOST_BITS_PER_WIDE_INT.
|
||||||
|
|
||||||
2009-12-29 H.J. Lu <hongjiu.lu@intel.com>
|
2009-12-29 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* config/i386/i386.c (ix86_expand_int_vcond): Reformat.
|
* config/i386/i386.c (ix86_expand_int_vcond): Reformat.
|
||||||
|
|
|
@ -4194,7 +4194,8 @@ expand_divmod (int rem_flag, enum tree_code code, enum machine_mode mode,
|
||||||
else if (d == -1)
|
else if (d == -1)
|
||||||
quotient = expand_unop (compute_mode, neg_optab, op0,
|
quotient = expand_unop (compute_mode, neg_optab, op0,
|
||||||
tquotient, 0);
|
tquotient, 0);
|
||||||
else if (abs_d == (unsigned HOST_WIDE_INT) 1 << (size - 1))
|
else if (HOST_BITS_PER_WIDE_INT >= size
|
||||||
|
&& abs_d == (unsigned HOST_WIDE_INT) 1 << (size - 1))
|
||||||
{
|
{
|
||||||
/* This case is not handled correctly below. */
|
/* This case is not handled correctly below. */
|
||||||
quotient = emit_store_flag (tquotient, EQ, op0, op1,
|
quotient = emit_store_flag (tquotient, EQ, op0, op1,
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2009-12-29 Ian Lance Taylor <iant@google.com>
|
||||||
|
|
||||||
|
PR middle-end/42099
|
||||||
|
* gcc.c-torture/execute/20091229-1.c: New test.
|
||||||
|
|
||||||
2009-12-29 Janus Weil <janus@gcc.gnu.org>
|
2009-12-29 Janus Weil <janus@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/42517
|
PR fortran/42517
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
long long foo(long long v) { return v / -0x080000000LL; }
|
||||||
|
void main() { if (foo(0x080000000LL) != -1) abort(); exit (0); }
|
Loading…
Reference in New Issue