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



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

Reply via email to