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
This commit is contained in:
parent
c8218030cc
commit
0397b96547
@ -1,3 +1,9 @@
|
|||||||
|
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>
|
2011-12-01 Joern Rennecke <joern.rennecke@embecosm.com>
|
||||||
|
|
||||||
PR tree-optimization/50802
|
PR tree-optimization/50802
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Loop unrolling and peeling.
|
/* 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.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of GCC.
|
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)
|
for (insn = BB_HEAD (bb); insn != NEXT_INSN (BB_END (bb)); insn = next)
|
||||||
{
|
{
|
||||||
next = NEXT_INSN (insn);
|
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;
|
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);
|
orig_insn = NEXT_INSN (orig_insn);
|
||||||
|
|
||||||
ivts_templ.insn = orig_insn;
|
ivts_templ.insn = orig_insn;
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
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>
|
2011-12-01 Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
PR c++/51367
|
PR c++/51367
|
||||||
|
16
gcc/testsuite/g++.dg/opt/pr51014.C
Normal file
16
gcc/testsuite/g++.dg/opt/pr51014.C
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
// 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();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user