http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55971
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org, | |tromey at gcc dot gnu.org --- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-01-14 17:33:02 UTC --- This is about: if (pfile->state.in_directive || pfile->state.parsing_args || pfile->state.in_deferred_pragma) { cur--; type = CPP_OTHER; cpp_error_with_line (pfile, CPP_DL_ERROR, token->src_loc, 0, "unterminated raw string"); break; } in lex_raw_string, in this case state.in_directive is true, as it is in #define directive. But just removing state.in_directive from that condition isn't enough, 1537 _cpp_process_line_notes (pfile, false); 1538 if (!_cpp_get_fresh_line (pfile)) doesn't handle this case correctly.