[PATCH] D75698: [analyzer][WIP] Suppress bug reports where a tracked expression's latest value change was a result of an invalidation
Artem Dergachev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 5 12:40:00 PST 2020
NoQ added a comment.
Like, the only reason why we have `trackExpressionValue` is because our concrete values are indistinguishable from each other. Regardless of where it comes from, `0 (Loc)` is the same as all other `0 (Loc)`s, so we have to manually observe how it was copied around in order to figure out where it comes from.
Symbols, by design, have their origin as their identity. Whenever we encounter an unknown runtime value, we denote it with a symbol, therefore the symbol //by construction// has all the information about that runtime value: how it appeared, why it's unknown, and so on.
Because invalidation produces symbols and not concrete values (as it destroys information about the program state, while concrete values //are// such information), this patch doesn't need to have anything to do with value tracking.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D75698/new/
https://reviews.llvm.org/D75698
More information about the cfe-commits
mailing list