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