re PR c++/53602 (Libre Office causes an internal compiler error)

PR c++/53602
        * combine-stack-adj.c (force_move_args_size_note): Add ARGS_SIZE
        note to a clobber insn when no other insn is available.

From-SVN: r188357
This commit is contained in:
Richard Henderson 2012-06-08 23:17:12 -07:00 committed by Richard Henderson
parent 5bf482f672
commit 65c2e636b5
2 changed files with 11 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2012-06-08 Richard Henderson <rth@redhat.com>
PR c++/53602
* combine-stack-adj.c (force_move_args_size_note): Add ARGS_SIZE
note to a clobber insn when no other insn is available.
2012-06-08 Georg-Johann Lay <avr@gjlay.de>
* config/avr/avr.c (avr_case_values_threshold): Return 7.

View File

@ -1,7 +1,7 @@
/* Combine stack adjustments.
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010 Free Software Foundation, Inc.
2010, 2012 Free Software Foundation, Inc.
This file is part of GCC.
@ -414,9 +414,10 @@ force_move_args_size_note (basic_block bb, rtx prev, rtx insn)
{
/* ??? We *must* have a place, lest we ICE on the lost adjustment.
Options are: dummy clobber insn, nop, or prevent the removal of
the sp += 0 insn. Defer that decision until we can prove this
can actually happen. */
gcc_unreachable ();
the sp += 0 insn. */
/* TODO: Find another way to indicate to the dwarf2 code that we
have not in fact lost an adjustment. */
test = emit_insn_before (gen_rtx_CLOBBER (VOIDmode, const0_rtx), insn);
}
add_reg_note (test, REG_ARGS_SIZE, XEXP (note, 0));
}