https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124153
--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-15 branch has been updated by Nathaniel Shead <[email protected]>: https://gcc.gnu.org/g:a54d4dafe55697e8b1fb9ee340ab0932280be7da commit r15-10852-ga54d4dafe55697e8b1fb9ee340ab0932280be7da Author: Nathaniel Shead <[email protected]> Date: Sat Feb 21 22:32:25 2026 +1100 libcpp: Fix ICE with directives-only and cpp_maybe_module_directive [PR124153] 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 <[email protected]> Reviewed-by: Jason Merrill <[email protected]> (cherry picked from commit deba30681df43bab1a62e0cddd280e382b7c3381)
