https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79961
--- Comment #5 from Pedro Alves <palves at redhat dot com> --- > We certainly should allow __attribute__((nonnull)) on methods, even when that > > includes nonnull (implicit) also for this. Yes, agreed, with implicit nonnull with no specified argument. For the case of specifying an argument number with nonnull(N), I don't find the error weird at all, because "this" can never be NULL. Even without the attribute, the compiler is already free to assume that. Calling a method via a null pointer is undefined behavior. So __attribute__((nonnull(1))) on a non-static method is _always_ a bug.