From 65c2e636b5c1051b9186c56e0ff30ded8ae0ec28 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Fri, 8 Jun 2012 23:17:12 -0700 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/combine-stack-adj.c | 9 +++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1026c9002cc..62f67f441fd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-06-08 Richard Henderson + + 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 * config/avr/avr.c (avr_case_values_threshold): Return 7. diff --git a/gcc/combine-stack-adj.c b/gcc/combine-stack-adj.c index b3ee785711a..b46fe3bcb38 100644 --- a/gcc/combine-stack-adj.c +++ b/gcc/combine-stack-adj.c @@ -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)); } -- 2.30.2