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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155516
138bc75d-0d04-0410-961f-
82ee72b054a4
+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>
* config/i386/i386.c (ix86_expand_int_vcond): Reformat.
else if (d == -1)
quotient = expand_unop (compute_mode, neg_optab, op0,
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. */
quotient = emit_store_flag (tquotient, EQ, op0, op1,
+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>
PR fortran/42517
--- /dev/null
+long long foo(long long v) { return v / -0x080000000LL; }
+void main() { if (foo(0x080000000LL) != -1) abort(); exit (0); }