https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86568
Bug ID: 86568 Summary: -Wnonnull warnings should highlight the relevant argument not the closing parenthesis Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org Target Milestone: --- void f(void*, void*) __attribute__((nonnull(2))); struct A { void f(void*, void*) __attribute__((nonnull(2))); }; int main() { f(0, 0); A().f(0, 0); } nonnull.cc: In function 'int main()': nonnull.cc:9:9: warning: null argument where non-null required (argument 2) [-Wnonnull] f(0, 0); ^ nonnull.cc:10:13: warning: null argument where non-null required (argument 2) [-Wnonnull] A().f(0, 0); ^ The location of the caret diagnostic is not helpful. It's especially confusing for member functions where the argument number includes the implicit 'this' parameter. Expected result: nonnull.cc: In function 'int main()': nonnull.cc:9:9: warning: null argument where non-null required (argument 2) [-Wnonnull] f(0, 0); ^ nonnull.cc:10:13: warning: null argument where non-null required (argument 2) [-Wnonnull] A().f(0, 0); ^