[Bug preprocessor/39213] [4.4/4.5/4.6 regression] Preprocessor ICE with -m64 and --traditional-cpp

ebotcazou at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Nov 24 12:46:00 GMT 2010


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39213

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tromey at redhat dot com

--- Comment #12 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2010-11-24 12:35:18 UTC ---
add_line_note adds a sentinel note

 done:
  *d = '\n';
  /* A sentinel note that should never be processed.  */
  add_line_note (buffer, d + 1, '\n');
  buffer->next_line = s + 1;

then _cpp_overlay_buffer changes buffer->cur and the test at the beginning of
_cpp_process_line_notes

      if (note->pos > buffer->cur)
    break;

then becomes totally bogus.

I guess _cpp_overlay_buffer/_cpp_remove_overlay must temporarily invalidate the
notes somehow.



More information about the Gcc-bugs mailing list