[PATCH] D66664: [FIX] Nonnull is not always implied by dereferenceable

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 23 13:17:57 PDT 2019


efriedma added a comment.

getPointerDereferenceableBytes returns some number of dereferenceable bytes.  If CanBeNull is true, that result is modified: if the pointer value is null, the number of known dereferenceable bytes is actually zero.

As far as I can tell, without your patch, the function implements this logic correctly, and the callers use the result correctly.  "CanBeNull == false" doesn't mean the pointer is non-null; it means the caller doesn't have to prove the value is non-null before using the "known dereferenceable bytes" result. The parameter CanBeNull should probably be named to clarify that, though; maybe "OrNull" would be better?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D66664/new/

https://reviews.llvm.org/D66664





More information about the llvm-commits mailing list