aaron.ballman added inline comments.
================ Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:8217 + err_typecheck_convert_incompatible_function_pointer.Text>, + InGroup<DiagGroup<"incompatible-function-pointer-types-strict">>, DefaultIgnore; def ext_typecheck_convert_discards_qualifiers : ExtWarn< ---------------- samitolvanen wrote: > aaron.ballman wrote: > > We don't typically add new off-by-default warnings because we have evidence > > that users don't enable them enough to be worth adding them. Is there a way > > we can enable this warning by default for CFI compilation units (or when > > the cfi sanitizer is enabled) so that it's only off by default for non-CFI > > users? I don't think we have any examples of doing this in the code base, > > so I believe this would be breaking new ground (and thus is worth thinking > > about more, perhaps it's a bad idea for some reason). > > Is there a way we can enable this warning by default for CFI compilation > > units (or when the cfi sanitizer is enabled) so that it's only off by > > default for non-CFI users? > > I can look into it, but I'm not sure if there's a convenient way to do that. > An alternative to this could be to enable the warning by default, but only > actually perform the check if CFI is enabled. This way non-CFI users would > never see the warning because this really isn't a concern for them, but CFI > users would still get the warning without explicitly enabling it. Or do you > think this behavior would be confusing? Heh, sorry for not being clear, that's actually somewhat along the lines of how I envisioned you'd implement it (we don't have a way in tablegen to tie `DefaultIgnore` to some language options or a target). I was thinking the diagnostic would be left as `DefaultIgnore` in the .td file, but we'd take note in the driver that CFI was enabled and pass `-Wincompatible-function-pointer-types-strict` to the `-cc1` invocation. If the user wrote `-Wno-incompatible-function-pointer-types-strict` at the driver level, that would come *after* the automatically generated flag for cc1 and would still disable the diagnostic in the cc1 invocation (because the last flag wins). WDYT? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136790/new/ https://reviews.llvm.org/D136790 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits