cpplex.c (_cpp_lex_token): Ensure we warn at most once about files not ending in...
authorNeil Booth <neil@daikokuya.demon.co.uk>
Sat, 12 May 2001 16:02:01 +0000 (16:02 +0000)
committerNeil Booth <neil@gcc.gnu.org>
Sat, 12 May 2001 16:02:01 +0000 (16:02 +0000)
* cpplex.c (_cpp_lex_token): Ensure we warn at most once
about files not ending in newlines.

From-SVN: r41995

gcc/ChangeLog
gcc/cpplex.c

index 745094d5fa36aa23add690c116d4f0176109403f..1839c19c896f172d118bc8c388eaced8151e1ce8 100644 (file)
@@ -1,3 +1,8 @@
+2001-05-12  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpplex.c (_cpp_lex_token): Ensure we warn at most once
+       about files not ending in newlines.
+
 2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
 
        * config/arm/arm.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Use delta.
index 9bbab0fb68676b3df3cb0e6a03360d91347825b6..f25913f20981828ba93a8e93c4c0e3588dc9a5c6 100644 (file)
@@ -890,9 +890,11 @@ _cpp_lex_token (pfile, result)
   switch (c)
     {
     case EOF:
-      /* Non-empty files should end in a newline.  Ignore for command
-        line and _Pragma buffers.  */
-      if (pfile->lexer_pos.col != 0 && !buffer->from_stage3)
+      /* Non-empty files should end in a newline.  Checking "bol" too
+         prevents multiple warnings when hitting the EOF more than
+         once, like in a directive.  Don't warn for command line and
+         _Pragma buffers.  */
+      if (pfile->lexer_pos.col != 0 && !bol && !buffer->from_stage3)
        cpp_pedwarn (pfile, "no newline at end of file");
       pfile->state.next_bol = 1;
       pfile->skipping = 0;     /* In case missing #endif.  */