diff options
-rw-r--r-- | gcc/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/genemit.c | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5158ec0..472465f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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> diff --git a/gcc/genemit.c b/gcc/genemit.c index 781eba2..cb6c06c 100644 --- a/gcc/genemit.c +++ b/gcc/genemit.c @@ -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) |