(rescan): Preserve newlines after macro names at the top level since this is...
authorRichard Kenner <kenner@gcc.gnu.org>
Mon, 17 Oct 1994 22:47:09 +0000 (18:47 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Mon, 17 Oct 1994 22:47:09 +0000 (18:47 -0400)
(rescan): Preserve newlines after macro names at the top level since
this is more likely to do the right thing with line numbers.

From-SVN: r8287

gcc/cccp.c

index b4343001cddd363902371a3bc476ca6073700c41..7f3613d874d7adbe668d927a791f9ad6634dab06 100644 (file)
@@ -3276,9 +3276,17 @@ startagain:
              
              /* This is now known to be a macro call.
                 Discard the macro name from the output,
-                along with any following whitespace just copied.  */
+                along with any following whitespace just copied,
+                but preserve newlines at the top level since this
+                is more likely to do the right thing with line numbers.  */
              obp = op->buf + obufp_before_macroname;
-             op->lineno = op_lineno_before_macroname;
+             if (ip->macro != 0)
+               op->lineno = op_lineno_before_macroname;
+             else {
+               int newlines = op->lineno - op_lineno_before_macroname;
+               while (0 < newlines--)
+                 *obp++ = '\n';
+             }
 
              /* Prevent accidental token-pasting with a character
                 before the macro call.  */