george.burgess.iv added a comment. Thanks for this! LGTM after erichkeane's comments are resolved.
> I did a little digging on this, and it seems to be to keep track of a > declarations linkage for caching sake Yeah, otherwise, we get exponential behavior on some pathological template-y patterns. ================ Comment at: lib/AST/Linkage.h:93 static QueryType makeCacheKey(const NamedDecl *ND, LVComputationKind Kind) { - return std::make_pair(ND, Kind.toBits()); + return QueryType(ND, Kind.toBits()); } ---------------- (FWIW, it looks like `PointerIntPairInfo::UpdateInt` asserts that `Kind.toBits()` fits nicely in `NumLVComputationKindBits`. So if anything gets added, it'll yell and we can just revert to the current way of doing this :) ) Repository: rC Clang https://reviews.llvm.org/D52268 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits