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>
|
||||
|
||||
PR tree-optimization/50802
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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;
|
||||
|
@ -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>
|
||||
|
||||
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