PR debug/46782
* cfgcleanup.c (try_forward_edges): Skip debug insns.
gcc/testsuite/ChangeLog:
PR debug/46782
* gcc.dg/debug/pr46782.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167737
138bc75d-0d04-0410-961f-
82ee72b054a4
+2010-12-13 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/46782
+ * cfgcleanup.c (try_forward_edges): Skip debug insns.
+
2010-12-12 Jan Hubicka <jh@suse.cz>
Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
new_target = NULL;
else
{
+ rtx last;
+
if (new_locus)
locus = new_locus;
- new_locus = INSN_P (BB_END (target))
- ? INSN_LOCATOR (BB_END (target)) : 0;
+ last = BB_END (target);
+ if (DEBUG_INSN_P (last))
+ last = prev_nondebug_insn (last);
+
+ new_locus = last && INSN_P (last)
+ ? INSN_LOCATOR (last) : 0;
if (new_locus && locus && !locator_eq (new_locus, locus))
new_target = NULL;
+2010-12-13 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/46782
+ * gcc.dg/debug/pr46782.c: New.
+
2010-12-12 Janus Weil <janus@gcc.gnu.org>
PR fortran/46809
--- /dev/null
+/* PR debug/46782 */
+/* { dg-do compile } */
+/* { dg-options "-w -O0 -fvar-tracking -fcompare-debug" } */
+
+void foo (int i)
+{
+ if (i)
+ i++;
+ while (i)
+ ;
+}