summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2000-11-24 17:45:04 +0000
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2000-11-24 17:45:04 +0000
commit1fdbc76b33c97f774468ef5f134f026f220b2c1b (patch)
treec4752b2cd4a02d7beebff1142d13df82c0635c8d
parentb5083cca4e5c9c2dd8b3afc857fc56dc0f28de11 (diff)
downloadppe42-gcc-1fdbc76b33c97f774468ef5f134f026f220b2c1b.tar.gz
ppe42-gcc-1fdbc76b33c97f774468ef5f134f026f220b2c1b.zip
Fix crash in fold_range_test
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37712 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog2
-rw-r--r--gcc/fold-const.c1
2 files changed, 3 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2c12a963f0d..eb50265a21d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,7 @@
2000-11-24 Bernd Schmidt <bernds@redhat.co.uk>
+ * fold-const.c (fold_range_test): Avoid crash if LHS or RHS is null.
+
* reload1.c (conflicts_with_override): New function.
(emit_input_reload_insns): Use it to tighten test for validity
of substituting into output of previous insn.
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 9284a1943a9..aaff05f4d75 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -3780,6 +3780,7 @@ fold_range_test (exp)
short-circuited branch and the underlying object on both sides
is the same, make a non-short-circuit operation. */
else if (BRANCH_COST >= 2
+ && lhs != 0 && rhs != 0
&& (TREE_CODE (exp) == TRUTH_ANDIF_EXPR
|| TREE_CODE (exp) == TRUTH_ORIF_EXPR)
&& operand_equal_p (lhs, rhs, 0))
OpenPOWER on IntegriCloud