2012-01-30 Paolo Bonzini <bonzini@gnu.org>
authorbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Jan 2012 12:56:17 +0000 (12:56 +0000)
committerbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Jan 2012 12:56:17 +0000 (12:56 +0000)
* df-problems.c (df_kill_notes): Check that the use refers
to the note under examination.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183719 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/df-problems.c

index 3fbd36b..444d181 100644 (file)
@@ -1,3 +1,8 @@
+2012-01-30  Paolo Bonzini  <bonzini@gnu.org>
+
+       * df-problems.c (df_kill_notes): Check that the use refers
+       to the note under examination.
+
 2012-01-30  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR target/51920
index f9b0bc1..c9fc91b 100644 (file)
@@ -1,6 +1,6 @@
 /* Standard problems for dataflow support routines.
    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-   2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+   2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
    Originally contributed by Michael P. Hayes
              (m.hayes@elec.canterbury.ac.nz, mhayes@redhat.com)
    Major rewrite contributed by Danny Berlin (dberlin@dberlin.org)
@@ -2814,8 +2814,10 @@ df_kill_notes (rtx insn, bitmap live)
              {
                df_ref use = *use_rec;
                if (DF_REF_REGNO (use) > FIRST_PSEUDO_REGISTER
+                   && DF_REF_LOC (use)
                    && (DF_REF_FLAGS (use) & DF_REF_IN_NOTE)
-                   && ! bitmap_bit_p (live, DF_REF_REGNO (use)))
+                   && ! bitmap_bit_p (live, DF_REF_REGNO (use))
+                   && loc_mentioned_in_p (DF_REF_LOC (use), XEXP (link, 0)))
                  {
                    deleted = true;
                    break;