diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-05-22 23:25:52 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-05-22 23:25:52 +0000 |
commit | 93fcf93bc6a1cbf9f6a3cae5373665502b15fcc5 (patch) | |
tree | 2ff4f9020716ea58147b2cfad081bad5ec38df0d /clang/lib | |
parent | a838a40bc4e94c544bc9e4ad907ac87f4849ee08 (diff) | |
download | bcm5719-llvm-93fcf93bc6a1cbf9f6a3cae5373665502b15fcc5.tar.gz bcm5719-llvm-93fcf93bc6a1cbf9f6a3cae5373665502b15fcc5.zip |
Template instantiation for the GNU address-of-label extension.
llvm-svn: 72301
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Sema/SemaTemplateInstantiateExpr.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp b/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp index f20d699815a..1e57e1b5a37 100644 --- a/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp +++ b/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp @@ -55,7 +55,7 @@ namespace { OwningExprResult VisitCXXOperatorCallExpr(CXXOperatorCallExpr *E); OwningExprResult VisitCXXConditionDeclExpr(CXXConditionDeclExpr *E); OwningExprResult VisitConditionalOperator(ConditionalOperator *E); - // FIXME: AddrLabelExpr + OwningExprResult VisitAddrLabelExpr(AddrLabelExpr *E); OwningExprResult VisitStmtExpr(StmtExpr *E); OwningExprResult VisitTypesCompatibleExpr(TypesCompatibleExpr *E); OwningExprResult VisitShuffleVectorExpr(ShuffleVectorExpr *E); @@ -526,6 +526,13 @@ TemplateExprInstantiator::VisitConditionalOperator(ConditionalOperator *E) { move(Cond), move(LHS), move(RHS)); } +Sema::OwningExprResult +TemplateExprInstantiator::VisitAddrLabelExpr(AddrLabelExpr *E) { + return SemaRef.ActOnAddrLabel(E->getAmpAmpLoc(), + E->getLabelLoc(), + E->getLabel()->getID()); +} + Sema::OwningExprResult TemplateExprInstantiator::VisitStmtExpr(StmtExpr *E) { Sema::OwningStmtResult SubStmt = SemaRef.InstantiateCompoundStmt(E->getSubStmt(), TemplateArgs, true); |