https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109534
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So from what I understand this part is what you want: ``` diff --git a/gcc/gcc.cc b/gcc/gcc.cc index 16bb07f2cdc..2825ef3f037 100644 --- a/gcc/gcc.cc +++ b/gcc/gcc.cc @@ -1471,12 +1471,12 @@ static const struct compiler default_compilers[] = {".S", "@assembler-with-cpp", 0, 0, 0}, {"@assembler-with-cpp", #ifdef AS_NEEDS_DASH_FOR_PIPED_INPUT - "%(trad_capable_cpp) -lang-asm %(cpp_options) -fno-directives-only\ + "%(trad_capable_cpp) -lang-asm %(cpp_options) %{!E:-fno-directives-only} \ %{E|M|MM:%(cpp_debug_options)}\ %{!M:%{!MM:%{!E:%{!S:-o %|.s |\n\ as %(asm_debug) %(asm_options) %|.s %A }}}}" #else - "%(trad_capable_cpp) -lang-asm %(cpp_options) -fno-directives-only\ + "%(trad_capable_cpp) -lang-asm %(cpp_options) %{!E:-fno-directives-only} \ %{E|M|MM:%(cpp_debug_options)}\ %{!M:%{!MM:%{!E:%{!S:-o %|.s |\n\ as %(asm_debug) %(asm_options) %m.s %A }}}}" ``` Because -fno-directives-only is needed without -E. Secondary is the issue of what is produced.