[PATCH] D43012: [ASTImporter] Fix lexical DC for templated decls; support VarTemplatePartialSpecDecl
Gábor Horváth via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Feb 9 02:52:25 PST 2018
xazax.hun accepted this revision.
xazax.hun added a comment.
This revision is now accepted and ready to land.
Herald added a subscriber: martong.
Looks good to me. Only found a few nits.
================
Comment at: lib/AST/ASTImporter.cpp:4296
// Create the declaration that is being templated.
- SourceLocation StartLoc = Importer.Import(DTemplated->getLocStart());
- SourceLocation IdLoc = Importer.Import(DTemplated->getLocation());
- TypeSourceInfo *TInfo = Importer.Import(DTemplated->getTypeSourceInfo());
- VarDecl *D2Templated = VarDecl::Create(Importer.getToContext(), DC, StartLoc,
- IdLoc, Name.getAsIdentifierInfo(), T,
- TInfo, DTemplated->getStorageClass());
- D2Templated->setAccess(DTemplated->getAccess());
- D2Templated->setQualifierInfo(Importer.Import(DTemplated->getQualifierLoc()));
- D2Templated->setLexicalDeclContext(LexicalDC);
-
- // Importer.Imported(DTemplated, D2Templated);
- // LexicalDC->addDeclInternal(D2Templated);
-
- // Merge the initializer.
- if (ImportDefinition(DTemplated, D2Templated))
+ VarDecl *ToTemplated = dyn_cast_or_null<VarDecl>(Importer.Import(DTemplated));
+ if (!ToTemplated)
----------------
`auto *` to not repeat type.
================
Comment at: lib/AST/ASTImporter.cpp:4399
+ if (ImportTemplateArgumentListInfo(D->getTemplateArgsInfo(),
+ ToTAInfo))
+ return nullptr;
----------------
The formatting might be a bit off here.
Repository:
rC Clang
https://reviews.llvm.org/D43012
More information about the cfe-commits
mailing list