[PATCH] D29951: Load lazily the template specialization in multi-module setups.
Richard Smith via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue May 23 12:07:22 PDT 2017
rsmith added inline comments.
Comment at: include/clang/Serialization/ASTReader.h:551
+ llvm::SmallVector<serialization::DeclID, 8> PendingLazySpecializationIDs;
I'm not sure we can safely use global state for this: loading update records can trigger the import of a declaration and *its* update records, which would mean we'd attach the pending lazy specializations to the wrong declaration. Can you keep this list locally in `ASTReader::loadDeclUpdateRecords` instead, and pass it into `UpdateDecl`?
Comment at: include/clang/Serialization/ASTReader.h:1293-1295
+ // FIXME: A hack to access the protected getCommonPtr. This is because
+ // AddLazySpecializations should be called in the ASTReader which is not a
+ // friend of Class,Function,VarTemplateDecl.
Make this a static member of `ASTDeclReader` to avoid this hack.
More information about the cfe-commits