[PATCH] D14277: [Analyzer] Make referenced SymbolMetadata live even if its region is dead

Jordan Rose via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 3 15:40:03 PST 2015


jordan_rose added a comment.

The intent here was that a metadata symbol represents //metadata about a region.// That means if the region is dead, and the symbol isn't directly referenceable, we won't be able to recreate it. The advantage of `&&` was that checkers didn't have to track when regions were no longer live.

Of course, the example shows that a symbol doesn't have to be directly referenceable to be used, so it didn't exactly pan out. But making this change without a corresponding change to every checker using metadata symbols (in-tree, just CStringChecker) means that those checkers will now keep the symbols alive forever. (And if we wanted to do that, we wouldn't have to use `markInUse`; just `markLive`.)

I think this needs a little more thought.


Repository:
  rL LLVM

http://reviews.llvm.org/D14277





More information about the cfe-commits mailing list