aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/combine.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5133b37..7178c7c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR rtl-optimization/67483
+ * combine.c (make_compound_operation): Don't call extract_left_shift
+ with negative shift amounts.
+
2016-05-13 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/71071
diff --git a/gcc/combine.c b/gcc/combine.c
index 3554f51..cd864cc 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -8037,6 +8037,7 @@ make_compound_operation (rtx x, enum rtx_code in_code)
&& ! (GET_CODE (lhs) == SUBREG
&& (OBJECT_P (SUBREG_REG (lhs))))
&& CONST_INT_P (rhs)
+ && INTVAL (rhs) >= 0
&& INTVAL (rhs) < HOST_BITS_PER_WIDE_INT
&& INTVAL (rhs) < mode_width
&& (new_rtx = extract_left_shift (lhs, INTVAL (rhs))) != 0)