Index: gcc/c-family/c-ppoutput.c
===================================================================
--- gcc/c-family/c-ppoutput.c	(revision 172641)
+++ gcc/c-family/c-ppoutput.c	(working copy)
@@ -316,7 +316,7 @@ maybe_print_line (source_location src_lo
 
   if (src_line >= print.src_line
       && src_line < print.src_line + 8
-      && strcmp (map->to_file, print.src_file) == 0)
+      && (flag_no_line_commands || strcmp (map->to_file, print.src_file) == 0))
     {
       while (src_line > print.src_line)
 	{


2011-04-18  Richard Guenther  <rguenther@suse.de>

	* c-ppoutput.c (maybe_print_line): Do not preserve up to 7
	empty lines with -P.

Index: c-family/c-ppoutput.c
===================================================================
--- c-family/c-ppoutput.c	(revision 172644)
+++ c-family/c-ppoutput.c	(working copy)
@@ -314,7 +314,8 @@ maybe_print_line (source_location src_lo
       print.printed = 0;
     }
 
-  if (src_line >= print.src_line
+  if (!flag_no_line_commands
+      && src_line >= print.src_line
       && src_line < print.src_line + 8
       && strcmp (map->to_file, print.src_file) == 0)
     {
