aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-06-03 20:39:24 +0000
committerRichard Stallman <rms@gnu.org>1992-06-03 20:39:24 +0000
commit12f7c8764c9f91c3fe74bd4f5c4f644583fb913f (patch)
treeb2c5f1ec323ba6dfed00ae527dec6a5d6461dea3 /gcc
parent885d8175ed128445b1dbed8b96f32a086e2359ac (diff)
downloadgcc-12f7c8764c9f91c3fe74bd4f5c4f644583fb913f.zip
gcc-12f7c8764c9f91c3fe74bd4f5c4f644583fb913f.tar.gz
gcc-12f7c8764c9f91c3fe74bd4f5c4f644583fb913f.tar.bz2
*** empty log message ***
From-SVN: r1149
Diffstat (limited to 'gcc')
-rw-r--r--gcc/final.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/final.c b/gcc/final.c
index 460500e..b77b548 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -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);