Commit 0397b965 by Jakub Jelinek Committed by Jakub Jelinek

re PR rtl-optimization/51014 (ICE: in apply_opt_in_copies, at loop-unroll.c:2283…

re PR rtl-optimization/51014 (ICE: in apply_opt_in_copies, at loop-unroll.c:2283 with -O2 -g -funroll-loops)

	PR rtl-optimization/51014
	* loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs
	both from bb and orig_bb.

	* g++.dg/opt/pr51014.C: New test.

From-SVN: r181883
parent c8218030
2011-12-01 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/51014
* loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs
both from bb and orig_bb.
2011-12-01 Joern Rennecke <joern.rennecke@embecosm.com>
PR tree-optimization/50802
/* Loop unrolling and peeling.
Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2010
Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2010, 2011
Free Software Foundation, Inc.
This file is part of GCC.
......@@ -2262,10 +2262,15 @@ apply_opt_in_copies (struct opt_info *opt_info,
for (insn = BB_HEAD (bb); insn != NEXT_INSN (BB_END (bb)); insn = next)
{
next = NEXT_INSN (insn);
if (!INSN_P (insn))
if (!INSN_P (insn)
|| (DEBUG_INSN_P (insn)
&& TREE_CODE (INSN_VAR_LOCATION_DECL (insn)) == LABEL_DECL))
continue;
while (!INSN_P (orig_insn))
while (!INSN_P (orig_insn)
|| (DEBUG_INSN_P (orig_insn)
&& (TREE_CODE (INSN_VAR_LOCATION_DECL (orig_insn))
== LABEL_DECL)))
orig_insn = NEXT_INSN (orig_insn);
ivts_templ.insn = orig_insn;
......
2011-12-01 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/51014
* g++.dg/opt/pr51014.C: New test.
2011-12-01 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51367
......
// PR rtl-optimization/51014
// { dg-do compile }
// { dg-options "-O2 -funroll-loops -fcompare-debug" }
struct S
{
~S() { delete s; }
int *s;
};
void
f (S *x, S *y)
{
for (; x != y; ++x)
x->~S();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment