aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ifcvt.c14
2 files changed, 8 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cc50ca8..5158ec0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-07-30 Bernd Schmidt <bernds@redhat.com>
+
+ * ifcvt.c (cond_exec_process_if_block): Fix a merging error.
+ Bail out early if false_expr is NULL and we'd crash due to this.
+
2002-07-30 David Edelsohn <edelsohn@gnu.org>
Zack Weinberg <zack@codesourcery.com>
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index 61dd48d..3ce996f 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -426,17 +426,6 @@ cond_exec_process_if_block (ce_info, do_multiple_p)
#ifdef IFCVT_MODIFY_TESTS
/* If the machine description needs to modify the tests, such as setting a
conditional execution register from a comparison, it can do so here. */
- IFCVT_MODIFY_TESTS (true_expr, false_expr, test_bb, then_bb, else_bb,
- join_bb);
-
- /* See if the conversion failed */
- if (!true_expr || !false_expr)
- goto fail;
-#endif
-
-#ifdef IFCVT_MODIFY_TESTS
- /* If the machine description needs to modify the tests, such as setting a
- conditional execution register from a comparison, it can do so here. */
IFCVT_MODIFY_TESTS (ce_info, true_expr, false_expr);
/* See if the conversion failed */
@@ -460,6 +449,9 @@ cond_exec_process_if_block (ce_info, do_multiple_p)
basic_block bb = test_bb;
basic_block last_test_bb = ce_info->last_test_bb;
+ if (! false_expr)
+ goto fail;
+
do
{
rtx start, end;