]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c/10175 (-Wunreachable-code doesn't work for single lines)
authorJason Merrill <jason@redhat.com>
Fri, 4 Apr 2003 01:21:56 +0000 (20:21 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Fri, 4 Apr 2003 01:21:56 +0000 (20:21 -0500)
        PR c/10175
        * jump.c (never_reached_warning): Revert patch of 2002-11-02.
        Look backwards for a line note.

From-SVN: r65227

gcc/ChangeLog
gcc/jump.c

index 616b1a04ccfa05d9990b876b6fdb4a3ffe99af65..b890b9c982497a58d7126907218ba04e66b670dc 100644 (file)
@@ -1,3 +1,9 @@
+2003-04-03  Jason Merrill  <jason@redhat.com>
+
+       PR c/10175
+       * jump.c (never_reached_warning): Revert patch of 2002-11-02.
+       Look backwards for a line note.
+
 2003-04-03  Neil Booth  <neil@daikokuya.co.uk>
 
        * fix-header.c (read_scan_file): Defer switch processing.
index 6e0479081581193ee679bea570eb496ecd9c6439..b48bc6b03478fd5c14c92e4276a48291c0a4dd7c 100644 (file)
@@ -1909,10 +1909,20 @@ never_reached_warning (avoided_insn, finish)
   if (!warn_notreached)
     return;
 
+  /* Back up to the first of any NOTEs preceding avoided_insn; flow passes
+     us the head of a block, a NOTE_INSN_BASIC_BLOCK, which often follows
+     the line note.  */
+  for (insn = PREV_INSN (avoided_insn); ; insn = PREV_INSN (insn))
+    if (GET_CODE (insn) != NOTE)
+      {
+       insn = NEXT_INSN (insn);
+       break;
+      }
+
   /* Scan forwards, looking at LINE_NUMBER notes, until we hit a LABEL
      in case FINISH is NULL, otherwise until we run out of insns.  */
 
-  for (insn = avoided_insn; insn != NULL; insn = NEXT_INSN (insn))
+  for (; insn != NULL; insn = NEXT_INSN (insn))
     {
       if ((finish == NULL && GET_CODE (insn) == CODE_LABEL)
          || GET_CODE (insn) == BARRIER)
@@ -1929,7 +1939,7 @@ never_reached_warning (avoided_insn, finish)
        }
       else if (INSN_P (insn))
        {
-         if (reached_end || a_line_note == NULL)
+         if (reached_end)
            break;
          contains_insn = 1;
        }