diff options
author | Richard Henderson <rth@redhat.com> | 2011-08-11 08:09:30 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2011-08-11 08:09:30 -0700 |
commit | 6bfd73a62142342d1412f0bce7a1241e033e1a43 (patch) | |
tree | 1c93b1f7db971017a325c94ac4b7a972fb173235 /gcc/expr.c | |
parent | 022676dcde6f4ed5722c13a7a9049f06a9e9a088 (diff) | |
download | gcc-6bfd73a62142342d1412f0bce7a1241e033e1a43.zip gcc-6bfd73a62142342d1412f0bce7a1241e033e1a43.tar.gz gcc-6bfd73a62142342d1412f0bce7a1241e033e1a43.tar.bz2 |
re PR bootstrap/50018 (fixup_args_size_notes ICE breaks m68k-linux bootstrap)
PR bootstrap/50018
* expr.c (fixup_args_size_notes): Accept and ignore normal calls.
From-SVN: r177669
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -3567,8 +3567,10 @@ fixup_args_size_notes (rtx prev, rtx last, int end_args_size) /* Look for a call_pop pattern. */ if (CALL_P (insn)) { - /* We're not supposed to see non-pop call patterns here. */ - gcc_assert (GET_CODE (pat) == PARALLEL); + /* We have to allow non-call_pop patterns for the case + of emit_single_push_insn of a TLS address. */ + if (GET_CODE (pat) != PARALLEL) + continue; /* All call_pop have a stack pointer adjust in the parallel. The call itself is always first, and the stack adjust is @@ -3583,7 +3585,8 @@ fixup_args_size_notes (rtx prev, rtx last, int end_args_size) break; } /* We'd better have found the stack pointer adjust. */ - gcc_assert (i > 0); + if (i == 0) + continue; /* Fall through to process the extracted SET and DEST as if it was a standalone insn. */ } |