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.

Reply via email to