* cpplex.c (_cpp_lex_token): Ensure we warn at most once
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 12 May 2001 16:02:01 +0000 (16:02 +0000)
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 12 May 2001 16:02:01 +0000 (16:02 +0000)
about files not ending in newlines.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41995 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cpplex.c

index 745094d..1839c19 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 9bbab0f..f25913f 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.  */