The non-0 address space cases demonstrate the existing confused
behavior of nonnull for the underlying pointer argument.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
This doesn't look correct to me. Consider something like ptrmask(ptr, 3) where ptr is nonnull align 4. The ptrmask result will always be a null pointer, even though both inputs are non-null.
Comment Actions
I think you'd need to also check that there's at least one common non-null bit for both pointer and mask.
Comment Actions
I got here because I wanted to handle this in computeKnownBits and was trying to craft a test, I guess I'll just directly do that instead