diff options
| author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-08-11 15:09:30 +0000 |
|---|---|---|
| committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-08-11 15:09:30 +0000 |
| commit | a36f1a956d00e6e9d738a866ddd29118061b06f1 (patch) | |
| tree | 1c93b1f7db971017a325c94ac4b7a972fb173235 /gcc/expr.c | |
| parent | 446dbdd87f4d43b79ca85b4f75f80252ef251929 (diff) | |
| download | ppe42-gcc-a36f1a956d00e6e9d738a866ddd29118061b06f1.tar.gz ppe42-gcc-a36f1a956d00e6e9d738a866ddd29118061b06f1.zip | |
PR bootstrap/50018
* expr.c (fixup_args_size_notes): Accept and ignore normal calls.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177669 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expr.c')
| -rw-r--r-- | gcc/expr.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/expr.c b/gcc/expr.c index f0b76e187b7..997eb3e0223 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -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. */ } |

