[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2023-02-21 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added a comment. In D134831#4141842 , @samitolvanen wrote: > In D134831#4137408 , @inglorion > wrote: > >> Is this intended to warn on code that casts a function taking a pointer to >> some

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2023-02-21 Thread Bob Haarman via Phabricator via cfe-commits
inglorion added a comment. Thanks for the reply! FWIW, this warning is triggered by code which uses glib, which contains a number of function(some_type*) to function(void*) casts, for example here:

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2023-02-21 Thread Sami Tolvanen via Phabricator via cfe-commits
samitolvanen added a comment. In D134831#4137408 , @inglorion wrote: > Is this intended to warn on code that casts a function taking a pointer to > some non-void type to a function that takes a void*? Yes, this is intended to warn if the function types

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2023-02-18 Thread Bob Haarman via Phabricator via cfe-commits
inglorion added a comment. Is this intended to warn on code that casts a function taking a pointer to some non-void type to a function that takes a void*? void set(void (*g)(int*)) { f = (void(*)(void*)) g; } gives me warning: cast from 'void (*)(int *)' to 'void (*)(void *)'

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-10-26 Thread Sami Tolvanen via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG1aad641c7930: [Clang][Sema] Add -Wcast-function-type-strict (authored by samitolvanen). Changed prior to commit:

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-10-26 Thread Sami Tolvanen via Phabricator via cfe-commits
samitolvanen added a comment. The patch to disable this warning in Linux without W=1 is now in all supported stable kernels (https://lwn.net/Articles/912498/), so I'll commit this later today. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-10-05 Thread Sami Tolvanen via Phabricator via cfe-commits
samitolvanen added a comment. In D134831#3838373 , @nickdesaulniers wrote: > Please consider waiting until the warning flag has started propagating to > branches of stable, at least to whatever branch -Werror is first enabled in. Yes, I'm planning to

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-10-05 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Please consider waiting until the warning flag has started propagating to branches of stable, at least to whatever branch -Werror is first enabled in. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134831/new/

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-30 Thread Sami Tolvanen via Phabricator via cfe-commits
samitolvanen added a comment. In D134831#3827861 , @nathanchance wrote: > If you want to move on it quicker, feel free to draft a commit message and > slap my Suggested-by on it.

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-30 Thread Nathan Chancellor via Phabricator via cfe-commits
nathanchance added a comment. In D134831#3827790 , @samitolvanen wrote: > In D134831#3827730 , > @nickdesaulniers wrote: > >> Please get the patch disabling this warning for the kernel in flight before >>

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-30 Thread Sami Tolvanen via Phabricator via cfe-commits
samitolvanen added a comment. In D134831#3827730 , @nickdesaulniers wrote: > Please get the patch disabling this warning for the kernel in flight before > landing this. Agreed. @nathanchance do you want to send the patch above to LKML? Repository:

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-30 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers accepted this revision. nickdesaulniers added a comment. This revision is now accepted and ready to land. Please get the patch disabling this warning for the kernel in flight before landing this. It's going to make a lot of CI red due to kernel builds enabling `-Werror`.

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-30 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman accepted this revision. aaron.ballman added a comment. LGTM assuming precommit CI doesn't find any surprises, thank you for this! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134831/new/ https://reviews.llvm.org/D134831

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-30 Thread Sami Tolvanen via Phabricator via cfe-commits
samitolvanen updated this revision to Diff 464326. samitolvanen marked 3 inline comments as done. samitolvanen added a comment. Addressed feedback. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134831/new/ https://reviews.llvm.org/D134831 Files:

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-30 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments. Comment at: clang/docs/ReleaseNotes.rst:229-231 +- Introduced ``-Wcast-function-type-strict`` to warn about function type mismatches + in casts that may result in runtime indirect call `Control-Flow Integrity (CFI) +

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-29 Thread Sami Tolvanen via Phabricator via cfe-commits
samitolvanen added inline comments. Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:8686 +def warn_cast_function_type_strict : Warning, + InGroup, DefaultIgnore; def err_cast_pointer_to_non_pointer_int : Error< aaron.ballman wrote: > nathanchance

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-29 Thread Sami Tolvanen via Phabricator via cfe-commits
samitolvanen updated this revision to Diff 464067. samitolvanen marked 8 inline comments as done. samitolvanen added a comment. Moved `CastFunctionTypeStrict` to a subgroup of `CastFunctionType`, addressed other feedback, and updated tests. Repository: rG LLVM Github Monorepo CHANGES SINCE

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-29 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments. Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:8686 +def warn_cast_function_type_strict : Warning, + InGroup, DefaultIgnore; def err_cast_pointer_to_non_pointer_int : Error< nathanchance wrote: > kees wrote: >

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-29 Thread Nathan Chancellor via Phabricator via cfe-commits
nathanchance added inline comments. Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:8686 +def warn_cast_function_type_strict : Warning, + InGroup, DefaultIgnore; def err_cast_pointer_to_non_pointer_int : Error< kees wrote: > aaron.ballman wrote: >

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-29 Thread Kees Cook via Phabricator via cfe-commits
kees added a subscriber: nathanchance. kees added inline comments. Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:8686 +def warn_cast_function_type_strict : Warning, + InGroup, DefaultIgnore; def err_cast_pointer_to_non_pointer_int : Error<

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-29 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments. Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:8686 +def warn_cast_function_type_strict : Warning, + InGroup, DefaultIgnore; def err_cast_pointer_to_non_pointer_int : Error< samitolvanen wrote: >

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-28 Thread Sami Tolvanen via Phabricator via cfe-commits
samitolvanen updated this revision to Diff 463702. samitolvanen added a comment. Added a release note. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134831/new/ https://reviews.llvm.org/D134831 Files: clang/docs/ReleaseNotes.rst

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-28 Thread Sami Tolvanen via Phabricator via cfe-commits
samitolvanen added inline comments. Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:8686 +def warn_cast_function_type_strict : Warning, + InGroup, DefaultIgnore; def err_cast_pointer_to_non_pointer_int : Error< nickdesaulniers wrote: > I don't

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-28 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers requested changes to this revision. nickdesaulniers added a comment. This revision now requires changes to proceed. SGTM; please make a note of this new diagnostic flag in clang/docs/ReleaseNotes.rst under `Improvements to Clang's diagnostics`. Comment at:

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-28 Thread Sami Tolvanen via Phabricator via cfe-commits
samitolvanen added reviewers: pcc, nickdesaulniers, kees. samitolvanen added a comment. Any thoughts about adding a stricter version of -Wcast-function-type to make it easier to catch potential CFI issues? I also considered also gating this behind `-fsanitize=cfi-icall/kcfi`, but having a

[PATCH] D134831: [Clang][Sema] Add -Wcast-function-type-strict

2022-09-28 Thread Sami Tolvanen via Phabricator via cfe-commits
samitolvanen created this revision. Herald added a project: All. samitolvanen requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Clang supports indirect call Control-Flow Integrity (CFI) sanitizers (e.g. -fsanitize=cfi-icall), which enforce