If `null_pointer_is_valid` is present, `dereferenceable` does not imply
`nonnull`, make it clear.
Came up in D17993.
Reviewed By: aqjune
Differential Revision: https://reviews.llvm.org/D89417
size of the pointee type. The ``nonnull`` attribute does not imply
dereferenceability (consider a pointer to one element past the end of an
array), however ``dereferenceable(<n>)`` does imply ``nonnull`` in
- ``addrspace(0)`` (which is the default address space).
+ ``addrspace(0)`` (which is the default address space), except if the
+ ``null_pointer_is_valid`` function attribute is present.
``dereferenceable_or_null(<n>)``
This indicates that the parameter or return value isn't both