aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@redhat.com>2002-07-30 21:48:13 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2002-07-30 21:48:13 +0000
commit26e20555c3f1ae9ff98fe9566c60df4facbdbe3e (patch)
treea33a060acdb55e72d33b838b476073e5e1078f88 /gcc
parent0559cc77522cfd49759e2ac5729cdf9b820cea79 (diff)
downloadgcc-26e20555c3f1ae9ff98fe9566c60df4facbdbe3e.zip
gcc-26e20555c3f1ae9ff98fe9566c60df4facbdbe3e.tar.gz
gcc-26e20555c3f1ae9ff98fe9566c60df4facbdbe3e.tar.bz2
Fix null pointer crash and a merge error
From-SVN: r55884
Diffstat (limited to 'gcc')
-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;