spyffe requested changes to this revision. spyffe added a comment. This revision now requires changes to proceed.
There are several missing imports here, as well as a few minor nits. If the unit test cases aren't catching these, I'm a little concerned. We should be catching this. Also we should definitely test that bodies of function templates (in particular, bodies that use the template arguments) get imported properly. ================ Comment at: lib/AST/ASTImporter.cpp:2327 +void ASTNodeImporter::ImportAttributes(Decl *From, Decl *To) { + for (Decl::attr_iterator I = From->attr_begin(), E = From->attr_end(); I != E; + ++I) { ---------------- Would ``` for (Attr *A : From->atrs()) { ``` work in this case? ================ Comment at: lib/AST/ASTImporter.cpp:3564 + + FunctionTemplateDecl *ToFunc = FunctionTemplateDecl::Create( + Importer.getToContext(), DC, Loc, Name, Params, TemplatedFD); ---------------- You didn't import `TemplatedFD` before installing it in `ToFunc`. This code is broken, and we should make sure the unit tests know to catch these cases. ================ Comment at: lib/AST/ASTImporter.cpp:6482 + return CXXDependentScopeMemberExpr::Create(Importer.getToContext(), + Base, BaseType, + E->isArrow(), ---------------- You're installing `Base` and `BaseType` without importing them, as well as all the `Loc`s. https://reviews.llvm.org/D26904 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits