summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ASTImporter.cpp
diff options
context:
space:
mode:
authorGabor Marton <martongabesz@gmail.com>2019-03-07 13:38:20 +0000
committerGabor Marton <martongabesz@gmail.com>2019-03-07 13:38:20 +0000
commit5caba3069e8185b2c8225080c95755ea906b624e (patch)
tree81783633e8eb5b5a407319e49bc65116334543cc /clang/lib/AST/ASTImporter.cpp
parente7ec39c1234fdc09fd6e0cbf0c7dbabf410a3c32 (diff)
downloadbcm5719-llvm-5caba3069e8185b2c8225080c95755ea906b624e.tar.gz
bcm5719-llvm-5caba3069e8185b2c8225080c95755ea906b624e.zip
[ASTImporter] Import member expr with explicit template args
Summary: Member expressions with explicit template arguments were not imported correctly: the DeclRefExpr was missing. This patch fixes. Reviewers: a_sidorin, shafik, a.sidorin Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58830 llvm-svn: 355596
Diffstat (limited to 'clang/lib/AST/ASTImporter.cpp')
-rw-r--r--clang/lib/AST/ASTImporter.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/clang/lib/AST/ASTImporter.cpp b/clang/lib/AST/ASTImporter.cpp
index da102988dec..7ce43094572 100644
--- a/clang/lib/AST/ASTImporter.cpp
+++ b/clang/lib/AST/ASTImporter.cpp
@@ -7129,15 +7129,19 @@ ExpectedStmt ASTNodeImporter::VisitMemberExpr(MemberExpr *E) {
DeclarationNameInfo ToMemberNameInfo(ToName, ToLoc);
+ TemplateArgumentListInfo ToTAInfo, *ResInfo = nullptr;
if (E->hasExplicitTemplateArgs()) {
- // FIXME: handle template arguments
- return make_error<ImportError>(ImportError::UnsupportedConstruct);
+ if (Error Err =
+ ImportTemplateArgumentListInfo(E->getLAngleLoc(), E->getRAngleLoc(),
+ E->template_arguments(), ToTAInfo))
+ return std::move(Err);
+ ResInfo = &ToTAInfo;
}
return MemberExpr::Create(
Importer.getToContext(), ToBase, E->isArrow(), ToOperatorLoc,
ToQualifierLoc, ToTemplateKeywordLoc, ToMemberDecl, ToFoundDecl,
- ToMemberNameInfo, nullptr, ToType, E->getValueKind(), E->getObjectKind());
+ ToMemberNameInfo, ResInfo, ToType, E->getValueKind(), E->getObjectKind());
}
ExpectedStmt
OpenPOWER on IntegriCloud