summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-05-22 23:07:44 +0000
committerDouglas Gregor <dgregor@apple.com>2009-05-22 23:07:44 +0000
commit36fe6901d40560b8f2b940aba9208a303037926f (patch)
tree0724b8984fabbb7694cc80bbd5dfdcd78584e40c /clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
parent4a6dad68a30e0848bb013f745404fdf1683c3205 (diff)
downloadbcm5719-llvm-36fe6901d40560b8f2b940aba9208a303037926f.tar.gz
bcm5719-llvm-36fe6901d40560b8f2b940aba9208a303037926f.zip
Template instantiation for ExtVectorElementExpr.
llvm-svn: 72299
Diffstat (limited to 'clang/lib/Sema/SemaTemplateInstantiateExpr.cpp')
-rw-r--r--clang/lib/Sema/SemaTemplateInstantiateExpr.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp b/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
index da4fb75b59f..f20d699815a 100644
--- a/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
+++ b/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
@@ -64,7 +64,7 @@ namespace {
OwningExprResult VisitInitListExpr(InitListExpr *E);
OwningExprResult VisitDesignatedInitExpr(DesignatedInitExpr *E);
OwningExprResult VisitImplicitValueInitExpr(ImplicitValueInitExpr *E);
- // FIXME: ExtVectorElementExpr
+ OwningExprResult VisitExtVectorElementExpr(ExtVectorElementExpr *E);
// FIXME: BlockExpr
// FIXME: BlockDeclRefExpr
OwningExprResult VisitSizeOfAlignOfExpr(SizeOfAlignOfExpr *E);
@@ -708,6 +708,23 @@ TemplateExprInstantiator::VisitImplicitValueInitExpr(
}
Sema::OwningExprResult
+TemplateExprInstantiator::VisitExtVectorElementExpr(ExtVectorElementExpr *E) {
+ OwningExprResult Base = Visit(E->getBase());
+ if (Base.isInvalid())
+ return SemaRef.ExprError();
+
+ SourceLocation FakeOperatorLoc =
+ SemaRef.PP.getLocForEndOfToken(E->getBase()->getSourceRange().getEnd());
+ return SemaRef.ActOnMemberReferenceExpr(/*Scope=*/0,
+ move(Base),
+ /*FIXME*/FakeOperatorLoc,
+ tok::period,
+ E->getAccessorLoc(),
+ E->getAccessor(),
+ /*FIXME?*/Sema::DeclPtrTy::make((Decl*)0));
+}
+
+Sema::OwningExprResult
TemplateExprInstantiator::VisitSizeOfAlignOfExpr(SizeOfAlignOfExpr *E) {
bool isSizeOf = E->isSizeOf();
OpenPOWER on IntegriCloud