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);
     }

Reply via email to