mirror of
https://github.com/gcc-mirror/gcc.git
synced 2026-05-06 14:59:39 +02:00
When doing directives-only processing (-E -fdirectives-only, or -M) we crash if we hit an unexpected CPP_PRAGMA_EOL because we 'know' we're in a module directive but the in_deferred_pragma flag is no longer set. Fixed by undoing the "finished a module directive" behaviour within cpp_maybe_module_directive if we're bailing due to an ill-formed peeked token. PR c++/124153 libcpp/ChangeLog: * lex.cc (cpp_maybe_module_directive): Set in_deferred_pragma and eol when we see an unexpected CPP_PRAGMA_EOL. gcc/testsuite/ChangeLog: * g++.dg/modules/cpp-22.C: New test. Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com> Reviewed-by: Jason Merrill <jason@redhat.com>
162 KiB
162 KiB