[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