Recognize return insns even if the return appears in a parallel.
authorBernd Schmidt <bernds@redhat.com>
Tue, 30 Jul 2002 21:57:56 +0000 (21:57 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Tue, 30 Jul 2002 21:57:56 +0000 (21:57 +0000)
From-SVN: r55885

gcc/ChangeLog
gcc/genemit.c

index 5158ec0a8b6e542b9e8924e010a28f55bddca3c9..472465f59a5847e0dab41969cae9881c3e41f743 100644 (file)
@@ -2,6 +2,8 @@
 
        * 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.
+       * genemit.c (gen_expand): Recognize return insns even if the return
+       appears in a parallel.
 
 2002-07-30  David Edelsohn  <edelsohn@gnu.org>
            Zack Weinberg  <zack@codesourcery.com>
index 781eba2beb0177cac3817d3484646bcbac7d39ba..cb6c06ccd18b3a003e333f689f29a4ad1e1d829a 100644 (file)
@@ -524,8 +524,9 @@ gen_expand (expand)
       rtx next = XVECEXP (expand, 1, i);
       if ((GET_CODE (next) == SET && GET_CODE (SET_DEST (next)) == PC)
          || (GET_CODE (next) == PARALLEL
-             && GET_CODE (XVECEXP (next, 0, 0)) == SET
-             && GET_CODE (SET_DEST (XVECEXP (next, 0, 0))) == PC)
+             && ((GET_CODE (XVECEXP (next, 0, 0)) == SET
+                  && GET_CODE (SET_DEST (XVECEXP (next, 0, 0))) == PC)
+                 || GET_CODE (XVECEXP (next, 0, 0)) == RETURN))
          || GET_CODE (next) == RETURN)
        printf ("  emit_jump_insn (");
       else if ((GET_CODE (next) == SET && GET_CODE (SET_SRC (next)) == CALL)