From 4e0084e4383a20c08ddc72177aca77c195261137 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Fri, 12 Nov 2010 09:57:20 +0000 Subject: [PATCH] re PR debug/46375 (-fcompare-debug failure (length) with -O -fgcse -fno-tree-dominator-opts) PR debug/46375 * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns. From-SVN: r166646 --- gcc/ChangeLog | 5 +++++ gcc/emit-rtl.c | 2 +- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.dg/pr46375.c | 16 ++++++++++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/pr46375.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 03de2e2baf6..5607e753e9a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-11-12 Eric Botcazou + + PR debug/46375 + * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns. + 2010-11-11 Rodrigo Rivas Costa PR lto/46376 diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 60fe39b1ebf..2db0cffa8d0 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -3867,7 +3867,7 @@ remove_insn (rtx insn) if (!BARRIER_P (insn) && (bb = BLOCK_FOR_INSN (insn))) { - if (INSN_P (insn)) + if (NONDEBUG_INSN_P (insn)) df_set_bb_dirty (bb); if (BB_HEAD (bb) == insn) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e67a2964eee..4b01e09791c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2010-11-12 Eric Botcazou + + * gcc.dg/pr46375.c: New test. + 2010-11-11 Nathan Froyd PR c/44782 diff --git a/gcc/testsuite/gcc.dg/pr46375.c b/gcc/testsuite/gcc.dg/pr46375.c new file mode 100644 index 00000000000..0126bc93daa --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr46375.c @@ -0,0 +1,16 @@ +/* PR debug/46375 */ +/* Reported by Zdenek Sojka */ +/* { dg-do compile } */ +/* { dg-options "-fgcse -fno-tree-dominator-opts -fcompare-debug -O" } */ + +void bar (void); + +void +foo (int **pp) +{ + int *p = 0; + if (pp) + p = *pp; + if (p && *p) + bar (); +} -- 2.30.2