efriedma added a comment.

To be rigorous, we should perform "pointer" checking for every operation that 
performs pointer arithmetic.  Then we should perform "lvalue" checking (which 
doesn't allow pointers one past the end) in the following places:

1. When we take the address of an lvalue.
2. When we form a reference to an lvalue.
3. When we perform an lvalue-to-rvalue conversion.
4. When we perform an assignment to an lvalue.

This sort of piecemeal approach of recursively looking through arbitrary 
expressions seems likely to miss cases.  For example, we currently don't 
perform checks inside compound literals.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D71714



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to