https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96598
Bug ID: 96598 Summary: false NULL argument warning [-Wanalyzer-null-argument] Product: gcc Version: 10.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: dpotapov at gmail dot com Target Milestone: --- Created attachment 49054 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49054&action=edit C code to demonstrate the problem A function receives an argument that is marked as non-NULL using __attribute__ ((__nonnull__ ())), and it uses this argument to invoke another function that also takes a non-NULL argument. The first invocation does NOT produce any warning as expected, but the second one does: test.c:67:9: warning: use of NULL ‘str’ where non-null expected [CWE-690] [-Wanalyzer-null-argument] It looks strange considering the argument has not changed anywhere in the function. Also, it looks like the warning is triggered by defining an unrelated local variable. The warning happens only when the source code is compiled with '-fanalyzer -fsanitize=undefined'. The attached C file demonstrates the problem.