Fix (hopefully temporary) for breakage caused by my 08-21 patch.
authorPer Bothner <per@bothner.com>
Fri, 29 Aug 2003 01:07:42 +0000 (18:07 -0700)
committerPer Bothner <bothner@gcc.gnu.org>
Fri, 29 Aug 2003 01:07:42 +0000 (18:07 -0700)
* cpplex.c (_cpp_get_fresh_line):  Check for null buffer.
(_cpp_lex_buffer):  Likewise.
* cpptrad.c (_cpp_read_logical_line_trad):  Likewise.

From-SVN: r70898

gcc/ChangeLog
gcc/cpplex.c
gcc/cpptrad.c

index 40d00687709f8bf74a92795d294ba0f58450338a..96c2954657a38d8b9904d4b2aa66c1f2f7ec96a4 100644 (file)
@@ -1,3 +1,10 @@
+2003-08-28  Per Bothner  <per@bothner.com>
+
+       Fix (hopefully temporary) for breakage caused by my 08-21 patch.
+       * cpplex.c (_cpp_get_fresh_line):  Check for null buffer.
+       (_cpp_lex_buffer):  Likewise.
+       * cpptrad.c (_cpp_read_logical_line_trad):  Likewise.
+
 2003-08-28  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * config/s390/s390.md ("*mulsi3_sign"): New insn.
index 1c00bdd0c8e1c3147ad942cd12fe2f5a22a4bbc4..f779dfb7bc2aac2c4c7e8cd8f7b09299466e4689 100644 (file)
@@ -694,6 +694,9 @@ _cpp_get_fresh_line (cpp_reader *pfile)
     {
       cpp_buffer *buffer = pfile->buffer;
 
+      if (buffer == NULL)
+       return false;
+
       if (!buffer->need_line)
        return true;
 
@@ -759,7 +762,8 @@ _cpp_lex_direct (cpp_reader *pfile)
 
  fresh_line:
   result->flags = 0;
-  if (pfile->buffer->need_line)
+  buffer = pfile->buffer;
+  if (buffer == NULL || buffer->need_line)
     {
       if (!_cpp_get_fresh_line (pfile))
        {
@@ -781,8 +785,8 @@ _cpp_lex_direct (cpp_reader *pfile)
       result->flags = BOL;
       if (pfile->state.parsing_args == 2)
        result->flags |= PREV_WHITE;
+      buffer = pfile->buffer;
     }
-  buffer = pfile->buffer;
  update_tokens_line:
   result->line = pfile->line;
 
index caeda891253cde12216f5f028941f5305f67fc58..3c1bc2545c26ecb0b17c2d94a1b34dbdfe716535 100644 (file)
@@ -299,7 +299,8 @@ _cpp_read_logical_line_trad (cpp_reader *pfile)
 {
   do
     {
-      if (pfile->buffer->need_line && !_cpp_get_fresh_line (pfile))
+      if ((pfile->buffer == NULL || pfile->buffer->need_line)
+         && !_cpp_get_fresh_line (pfile))
        return false;
     }
   while (!_cpp_scan_out_logical_line (pfile, NULL) || pfile->state.skipping);