diff --git a/interpreter/llvm/src/tools/clang/lib/AST/ASTImporter.cpp b/interpreter/llvm/src/tools/clang/lib/AST/ASTImporter.cpp index 2442e8ec25f12..013db5380c229 100644 --- a/interpreter/llvm/src/tools/clang/lib/AST/ASTImporter.cpp +++ b/interpreter/llvm/src/tools/clang/lib/AST/ASTImporter.cpp @@ -71,6 +71,7 @@ namespace clang { // FIXME: SubstTemplateTypeParmType QualType VisitTemplateSpecializationType(const TemplateSpecializationType *T); QualType VisitElaboratedType(const ElaboratedType *T); + QualType VisitInjectedClassNameType(const InjectedClassNameType *T); // FIXME: DependentNameType // FIXME: DependentTemplateSpecializationType QualType VisitObjCInterfaceType(const ObjCInterfaceType *T); @@ -1765,6 +1766,15 @@ QualType ASTNodeImporter::VisitElaboratedType(const ElaboratedType *T) { ToQualifier, ToNamedType); } +QualType ASTNodeImporter::VisitInjectedClassNameType(const InjectedClassNameType *T) { + CXXRecordDecl *ToDecl + = dyn_cast_or_null(Importer.Import(T->getDecl())); + if (!ToDecl) + return QualType(); + + return Importer.getToContext().getTagDeclType(ToDecl); +} + QualType ASTNodeImporter::VisitObjCInterfaceType(const ObjCInterfaceType *T) { ObjCInterfaceDecl *Class = dyn_cast_or_null(Importer.Import(T->getDecl())); @@ -4073,7 +4083,7 @@ Decl *ASTNodeImporter::VisitClassTemplateDecl(ClassTemplateDecl *D) { if (DTemplated->isCompleteDefinition() && !D2Templated->isCompleteDefinition()) { - // FIXME: Import definition! + ImportDefinition(DTemplated, D2Templated); } return D2;