https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115738
Bug ID: 115738 Summary: Analyzer misses printf-via-function pointer for -Wanalyzer-unsafe-call-within-signal-handler Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: analyzer Assignee: dmalcolm at gcc dot gnu.org Reporter: sjames at gcc dot gnu.org Target Milestone: --- We should try to see through trivial function pointer assignment where we can. We don't emit -Wanalyzer-unsafe-call-within-signal-handler here. I don't _think_ pinskia's observation at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115737#c1 affects this. ``` #include <signal.h> #include <stddef.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> int (*my_logger)(const char * restrict, ...); void handle_the_signals() { my_logger("uh"); } int main(void) { my_logger = &printf; signal(SIGSEGV, &handle_the_signals); raise(SIGSEGV); } ``` (Note that I don't think this is too contrived, as the function pointer could easily be assigned based on some debug variable or flag at runtime.)