[clang] [clang] move -Wcast-function-type under -Wextra (PR #77178)

Thurston Dang via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 21 09:59:07 PDT 2024


thurstond wrote:

> > I believe this patch is causing some issues on two PPC bots. Would you be able to help take a look? https://lab.llvm.org/buildbot/#/builders/57/builds/33601/steps/5/logs/stdio https://lab.llvm.org/buildbot/#/builders/36/builds/43759/steps/12/logs/stdio
> 
> I guess adding this flag (-Wno-cast-function-type-strict) will make the error go away. But it is caused by the conversion of the second argument "void*" to "siginfo_t _" when casting from "SignalHandlerType" i.e. "void (___sanitizer::SignalHandlerType)(int, void *, void *);" to "void (*sa_sigaction) (int, siginfo_t *, void *);". If you are sure that this conversion is valid, I guess we can add this flag. Might be similar for others.

The reason for the weird cast: SignalHandlerType has 'void*' instead of 'siginfo_t*' because it is typedef'ed in sanitizer_common/sanitizer_common.h, which does not have access to the header (signal.h) that defines siginfo_t; we therefore cannot fix SignalHandlerType.

https://github.com/llvm/llvm-project/pull/77178


More information about the cfe-commits mailing list