rsmith added a comment. I think you should track lazy partial specializations separately from lazy full specializations -- we need to load all the partial specializations when doing partial specialization selection, and don't want to load all full specializations at the same time.
================ Comment at: lib/Serialization/ASTReaderDecl.cpp:92 for (unsigned I = 0, Size = Record.readInt(); I != Size; ++I) - IDs.push_back(ReadDeclID()); + IDs.push_back(LazySpecializationInfo(ReadDeclID(), Record.readInt())); } ---------------- Move these subexpressions to separate statements; the two "read" calls are not sequenced here. ================ Comment at: lib/Serialization/ASTReaderDecl.cpp:3972 // It will be added to the template's lazy specialization set. - PendingLazySpecializationIDs.push_back(ReadDeclID()); + LazySpecializationInfo LazySpecInfo(ReadDeclID(), Record.readInt()); + PendingLazySpecializationIDs.push_back(LazySpecInfo); ---------------- Likewise here. Repository: rL LLVM https://reviews.llvm.org/D41416 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits