summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
c8c597a)
* loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs
both from bb and orig_bb.
* g++.dg/opt/pr51014.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181883
138bc75d-0d04-0410-961f-
82ee72b054a4
+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
2011-12-01 Joern Rennecke <joern.rennecke@embecosm.com>
PR tree-optimization/50802
/* 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.
This file is part of GCC.
Free Software Foundation, Inc.
This file is part of GCC.
for (insn = BB_HEAD (bb); insn != NEXT_INSN (BB_END (bb)); insn = next)
{
next = NEXT_INSN (insn);
for (insn = BB_HEAD (bb); insn != NEXT_INSN (BB_END (bb)); insn = next)
{
next = NEXT_INSN (insn);
+ if (!INSN_P (insn)
+ || (DEBUG_INSN_P (insn)
+ && TREE_CODE (INSN_VAR_LOCATION_DECL (insn)) == LABEL_DECL))
- 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;
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
2011-12-01 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51367
--- /dev/null
+// 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();
+}