https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78655
--- Comment #8 from Marc Glisse <glisse at gcc dot gnu.org> --- (just to put this somewhere) We have multiple ways of doing pointer arithmetic in gcc. After the recent patch, we know that g returns nonnull, but we don't know it for f. struct A{int a,b;}; int*f(A*p){return&p->b;} int*g(A*p){return(int*)p+1;}