diff options
author | Richard Henderson <rth@redhat.com> | 2011-08-15 10:44:11 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2011-08-15 10:44:11 -0700 |
commit | efec771ab9763b9c16645a2993d87141dfa734e4 (patch) | |
tree | 634a8f76344cab7adcd401a279a6f11669e6bfca /gcc/explow.c | |
parent | 6ea9122292ed4ec58af1656e65dc381bbb24c1ef (diff) | |
download | gcc-efec771ab9763b9c16645a2993d87141dfa734e4.zip gcc-efec771ab9763b9c16645a2993d87141dfa734e4.tar.gz gcc-efec771ab9763b9c16645a2993d87141dfa734e4.tar.bz2 |
re PR debug/50006 (ICE in in connect_traces, at dwarf2cfi.c:2677)
PR middle-end/50006
* explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
setting out to include allocate_stack named pattern as well.
* builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
* stmt.c (expand_stack_restore): Likewise.
From-SVN: r177764
Diffstat (limited to 'gcc/explow.c')
-rw-r--r-- | gcc/explow.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/explow.c b/gcc/explow.c index f8262db..beeab44 100644 --- a/gcc/explow.c +++ b/gcc/explow.c @@ -1375,6 +1375,9 @@ allocate_dynamic_stack_space (rtx size, unsigned size_align, else if (flag_stack_check == STATIC_BUILTIN_STACK_CHECK) probe_stack_range (STACK_CHECK_PROTECT, size); + /* Don't let anti_adjust_stack emit notes. */ + suppress_reg_args_size = true; + /* Perform the required allocation from the stack. Some systems do this differently than simply incrementing/decrementing from the stack pointer, such as acquiring the space by calling malloc(). */ @@ -1425,7 +1428,6 @@ allocate_dynamic_stack_space (rtx size, unsigned size_align, } saved_stack_pointer_delta = stack_pointer_delta; - suppress_reg_args_size = true; if (flag_stack_check && STACK_CHECK_MOVING_SP) anti_adjust_stack_and_probe (size, false); @@ -1436,13 +1438,14 @@ allocate_dynamic_stack_space (rtx size, unsigned size_align, The constant size alloca should preserve crtl->preferred_stack_boundary alignment. */ stack_pointer_delta = saved_stack_pointer_delta; - suppress_reg_args_size = false; #ifdef STACK_GROWS_DOWNWARD emit_move_insn (target, virtual_stack_dynamic_rtx); #endif } + suppress_reg_args_size = false; + /* Finish up the split stack handling. */ if (final_label != NULL_RTX) { |