https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87379
Eric Gallager <egallager at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |egallager at gcc dot gnu.org --- Comment #2 from Eric Gallager <egallager at gcc dot gnu.org> --- (In reply to Martin Sebor from comment #1) > Confirmed. The handling of variadic functions was discussed during the > design of the -Wcast-function-type warning > (https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00131.html). The assumption > was that such conversions may be common and the idea was to avoid warning > when they're safe. I don't think the warning implementation considers the > nuances between different ABIs. Rather than customizing the warning to each > ABI it might be better to simply tighten it up across the board as suggested. > > Not sure if making the warning "smarter" by having it track pointer > conversions across assignments (to detect incompatible function conversions > via void*) is worth exploring. It would still not detect the problem in the > dlsym() case (and others like it) but could lead to a fair amount of noise. It might be worth making it a separate flag (-Wcast-variadic-function-type perhaps?) that's enabled by -Wcast-function-type but can still be disabled from it independently to help users focus on just one variety of warnings at a time