diff options
| author | Douglas Gregor <dgregor@apple.com> | 2009-05-22 23:07:44 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2009-05-22 23:07:44 +0000 |
| commit | 36fe6901d40560b8f2b940aba9208a303037926f (patch) | |
| tree | 0724b8984fabbb7694cc80bbd5dfdcd78584e40c /clang/lib/Sema/SemaTemplateInstantiateExpr.cpp | |
| parent | 4a6dad68a30e0848bb013f745404fdf1683c3205 (diff) | |
| download | bcm5719-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.cpp | 19 |
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(); |

