OSDN Git Service

Fix null pointer crash and a merge error
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Jul 2002 21:48:13 +0000 (21:48 +0000)
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Jul 2002 21:48:13 +0000 (21:48 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55884 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/ifcvt.c

index cc50ca8..5158ec0 100644 (file)
@@ -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>
 
index 61dd48d..3ce996f 100644 (file)
@@ -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;