https://gcc.gnu.org/g:3e89a4d5138e585713604135d4c2601244055e82
commit r15-5368-g3e89a4d5138e585713604135d4c2601244055e82 Author: Jason Merrill <ja...@redhat.com> Date: Sat Nov 16 15:25:04 2024 -0500 c++: -M and modules again While experimenting with testing module std I noticed that gcc -M broke on it; it seems I need to set directives_only even sooner than I did in r15-4219. gcc/c-family/ChangeLog: * c-ppoutput.cc (preprocess_file): Don't set directives_only here. gcc/cp/ChangeLog: * module.cc (module_preprocess_options): Set directives_only here. Diff: --- gcc/c-family/c-ppoutput.cc | 1 - gcc/cp/module.cc | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/c-family/c-ppoutput.cc b/gcc/c-family/c-ppoutput.cc index f6f83bdff00a..97ea864df141 100644 --- a/gcc/c-family/c-ppoutput.cc +++ b/gcc/c-family/c-ppoutput.cc @@ -95,7 +95,6 @@ preprocess_file (cpp_reader *pfile) if (flag_modules) { /* For macros from imported headers we need directives_only_cb. */ - cpp_get_options (pfile)->directives_only = true; scan_translation_unit_directives_only (pfile); } else diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc index 27eb39b48fa3..4136fdceb9f6 100644 --- a/gcc/cp/module.cc +++ b/gcc/cp/module.cc @@ -21224,6 +21224,8 @@ module_preprocess_options (cpp_reader *reader) } auto *opt = cpp_get_options (reader); opt->module_directives = true; + if (flag_no_output) + opt->directives_only = true; if (opt->main_search == CMS_none) opt->main_search = cpp_main_search (flag_header_unit); }