aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-outof-ssa.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2016-03-07 03:48:57 -0800
committerRichard Henderson <rth@gcc.gnu.org>2016-03-07 03:48:57 -0800
commit5edb985350a075f467323e37cdb41c84b6127fcf (patch)
tree9cdf333a2423bf80e844905edf079aa43f0ac82d /gcc/tree-outof-ssa.c
parent2067a8f3c21aea9c049fcddb673aeee71911428d (diff)
downloadgcc-5edb985350a075f467323e37cdb41c84b6127fcf.zip
gcc-5edb985350a075f467323e37cdb41c84b6127fcf.tar.gz
gcc-5edb985350a075f467323e37cdb41c84b6127fcf.tar.bz2
re PR rtl-optimization/70061 (ICE: SIGSEGV in delete_insn_chain() with unused label)
PR rtl-opt/70061 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust. (insert_value_copy_on_edge): Likewise. * gcc.c-torture/compile/pr70061.c: New test. From-SVN: r234025
Diffstat (limited to 'gcc/tree-outof-ssa.c')
-rw-r--r--gcc/tree-outof-ssa.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c
index 25286a2..4125529 100644
--- a/gcc/tree-outof-ssa.c
+++ b/gcc/tree-outof-ssa.c
@@ -41,6 +41,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-ssa-ter.h"
#include "tree-ssa-coalesce.h"
#include "tree-outof-ssa.h"
+#include "dojump.h"
/* FIXME: A lot of code here deals with expanding to RTL. All that code
should be in cfgexpand.c. */
@@ -220,6 +221,7 @@ emit_partition_copy (rtx dest, rtx src, int unsignedsrcp, tree sizeexp)
}
else
emit_move_insn (dest, src);
+ do_pending_stack_adjust ();
rtx_insn *seq = get_insns ();
end_sequence ();
@@ -312,6 +314,8 @@ insert_value_copy_on_edge (edge e, int dest, tree src, source_location locus)
if (x != dest_rtx)
emit_move_insn (dest_rtx, x);
+ do_pending_stack_adjust ();
+
seq = get_insns ();
end_sequence ();