diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d2775fd9751368cfe2f717dc38dbc7b512c1d39d..0b2de7208fe4a3673d1a9339ff8bc4e641a7f0bc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2002-06-29  Neil Booth  <neil@daikokuya.co.uk>
+
+	PR preprocessor/7150
+	* cppmain.c (scan_translation_unit_trad): Simplify.
+	* cpplib.c (cpp_scan_nooutput): Handle traditional case.
+
 2002-06-29  Neil Booth  <neil@daikokuya.demon.co.uk>
 
 	* config/i386/crtdll.h: Define EXTRA_OS_CPP_BUILTINS.
diff --git a/gcc/cppmain.c b/gcc/cppmain.c
index dba64041bf5b14820ab5024e9a6a10f8716fcd23..e600295cc419fe58c066f3418e94aa25b9f48084 100644
--- a/gcc/cppmain.c
+++ b/gcc/cppmain.c
@@ -228,13 +228,9 @@ static void
 scan_translation_unit_trad (pfile)
      cpp_reader *pfile;
 {
-  for (;;)
+  while (_cpp_read_logical_line_trad (pfile))
     {
-      size_t len;
-
-      if (!_cpp_read_logical_line_trad (pfile))
-	break;
-      len = pfile->out.cur - pfile->out.base;
+      size_t len = pfile->out.cur - pfile->out.base;
       maybe_print_line (print.map, pfile->out.first_line);
       fwrite (pfile->out.base, 1, len, print.outf);
       print.printed = 1;