OSDN Git Service

*** empty log message ***
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 3 Jun 1992 20:39:24 +0000 (20:39 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 3 Jun 1992 20:39:24 +0000 (20:39 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1149 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/final.c

index 460500e..b77b548 100644 (file)
@@ -1028,10 +1028,17 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes)
            {
              if (GET_CODE (note) != NOTE && GET_CODE (note) != CODE_LABEL)
                break;
+             /* These types of notes can be significant
+                so make sure the preceeding line number stays.  */
+             else if (GET_CODE (note) == NOTE
+                      && (NOTE_LINE_NUMBER (note) == NOTE_INSN_BLOCK_BEG
+                          || NOTE_LINE_NUMBER (note) == NOTE_INSN_BLOCK_END
+                          || NOTE_LINE_NUMBER (note) == NOTE_INSN_FUNCTION_BEG))
+               break;
              else if (GET_CODE (note) == NOTE && NOTE_LINE_NUMBER (note) > 0)
                {
-                 /* Another note follows; we can delete this note provided
-                    no intervening line numbers have notes elsewhere.  */
+                 /* Another line note follows; we can delete this note
+                    if no intervening line numbers have notes elsewhere.  */
                  int num;
                  for (num = NOTE_LINE_NUMBER (insn) + 1;
                       num < NOTE_LINE_NUMBER (note);