https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78655
--- Comment #11 from Jeffrey A. Law <law at gcc dot gnu.org> --- We can assume that the result of a POINTER_PLUS is non-null if either argument is non-null. So X + constant is always non-null. X + Y would be non-null if either X or Y is known to be non-null. If we know that X + Y is non-null via some mechanism (for example the result was dereferenced), then we know that X and Y are non-null.