https://gcc.gnu.org/bugzilla/show_bug.cgi?id=27336
Manuel López-Ibáñez <manu at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|"this" pointer is not |delete null checks in |assumed to be not null |callers to nonnull | |functions --- Comment #10 from Manuel López-Ibáñez <manu at gcc dot gnu.org> --- For the following: struct B { int x; }; extern void g3(struct B *that) __attribute__((nonnull)); bool f3(struct B *a) { g3(a); return a; } The GIMPLE dump for C and C++ looks the same, but the NULL check in C++ does not get optimized out.