NoQ added a comment.

> Approach (2): We could teach the Store to scan itself for bindings to 
> metadata-symbolic-based regions during scanReachableSymbols() whenever a 
> region turns out to be reachable. This requires no work on checker side, but 
> it sounds performance-heavy.

Nope, this approach is wrong. Metadata symbols may become out-of-date: when the 
object changes, metadata symbols attached to it aren't changing (because 
symbols simply don't change). The same metadata may have different symbols to 
denote its value in different moments of time, but at most one of them 
represents the actual metadata value. So we'd be escaping more stuff than 
necessary.

If only we had "ghost fields" 
(http://lists.llvm.org/pipermail/cfe-dev/2016-May/049000.html), it would have 
been much easier, because the ghost field would only contain the actual 
metadata, and the Store would always know about it. This example adds to my 
belief that ghost fields are exactly what we need for most C++ checkers.


https://reviews.llvm.org/D35216



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

Reply via email to