rsmith added inline comments.
================ Comment at: clang/include/clang/Driver/Options.td:2575-2581 // These "special" warning flags are effectively processed as f_Group flags by the driver: // Just silence warnings about -Wlarger-than for now. def Wlarger_than_EQ : Joined<["-"], "Wlarger-than=">, Group<clang_ignored_f_Group>; def Wlarger_than_ : Joined<["-"], "Wlarger-than-">, Alias<Wlarger_than_EQ>; -def Wframe_larger_than_EQ : Joined<["-"], "Wframe-larger-than=">, Group<f_Group>, Flags<[NoXarchOption]>; +def Wframe_larger_than_EQ : Joined<["-"], "Wframe-larger-than=">, + Group<f_Group>, Flags<[NoXarchOption,CC1Option]>, + MarshallingInfoInt<CodeGenOpts<"WarnStackSize">, "UINT_MAX">; ---------------- nickdesaulniers wrote: > @rsmith I wasn't super sure about this hunk of the diff. Should I not be > reusing the same flag between the Frontend and the Driver? (The Driver comes > after the Frontend, IIUC? Is that right?) (The driver comes before the frontend: the driver is the user-facing GCC-compatible `clang` binary, and the frontend is the `-cc1` interface.) What we do in other cases is to translate the driver-level (user-facing) warning flag into multiple frontend flags: * The driver-level flag `-Wwrite-strings` (in C) gets mapped into the frontend-level flags `-Wwrite-strings -fconst-strings`, where `-Wwrite-strings` only controls whether the warning is shown, and `-fconst-strings` only controls whether string literals have type `char[N]` or `const char[N]`. * The driver-level flag `-Wdeprecated` (in C++) gets mapped into the frontend-level flags `-Wdeprecated -fdeprecated-macro`, where `-Wdeprecated` only controls whether the warning is shown, and `-fdeprecated-macro` only controls whether `__DEPRECATED` is implicitly defined by the preprocessor. So I think the expected strategy here would probably be that the driver-level flag `-Wframe-larger-than=N` would get mapped into the frontend-level flags `-Wframe-larger-than -fsomething=N`, where `-Wframe-larger-than` only controls whether the warning is shown, and `-fsomething=N` sets the level of stack usage at which the backend triggers the warning. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103928/new/ https://reviews.llvm.org/D103928 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits