diff options
| author | Anders Carlsson <andersca@mac.com> | 2009-08-25 23:46:41 +0000 |
|---|---|---|
| committer | Anders Carlsson <andersca@mac.com> | 2009-08-25 23:46:41 +0000 |
| commit | 7e3f0e4e0df371cb56732f5bd6995e34a4cf3089 (patch) | |
| tree | 1d5966913b441c4a35e582caf31ae9fb32b9cce3 /clang/lib/Sema/SemaExprCXX.cpp | |
| parent | 4b1dae3ba47f2e7760b96d13ab94924fa2d91c0f (diff) | |
| download | bcm5719-llvm-7e3f0e4e0df371cb56732f5bd6995e34a4cf3089.tar.gz bcm5719-llvm-7e3f0e4e0df371cb56732f5bd6995e34a4cf3089.zip | |
Parsing of pseudo-destructors.
llvm-svn: 80055
Diffstat (limited to 'clang/lib/Sema/SemaExprCXX.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaExprCXX.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index aefec6a7a68..a714f327d4d 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -1682,11 +1682,35 @@ Expr *Sema::MaybeCreateCXXExprWithTemporaries(Expr *SubExpr, return E; } +Sema::OwningExprResult +Sema::ActOnPseudoDtorReferenceExpr(Scope *S, ExprArg Base, + SourceLocation OpLoc, + tok::TokenKind OpKind, + SourceLocation ClassNameLoc, + IdentifierInfo *ClassName, + const CXXScopeSpec *SS) { + if (SS && SS->isInvalid()) + return ExprError(); + + // Since this might be a postfix expression, get rid of ParenListExprs. + Base = MaybeConvertParenListExprToParenExpr(S, move(Base)); + + Expr *BaseExpr = Base.takeAs<Expr>(); + assert(BaseExpr && "no record expression"); + + // Perform default conversions. + DefaultFunctionArrayConversion(BaseExpr); + + QualType BaseType = BaseExpr->getType(); + return ExprError(); +} + Sema::OwningExprResult Sema::ActOnFinishFullExpr(ExprArg Arg) { Expr *FullExpr = Arg.takeAs<Expr>(); if (FullExpr) FullExpr = MaybeCreateCXXExprWithTemporaries(FullExpr, /*ShouldDestroyTemps=*/true); + return Owned(FullExpr); } |

