summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-05-21 17:21:12 +0000
committerDouglas Gregor <dgregor@apple.com>2009-05-21 17:21:12 +0000
commit29fe6aeef345cc6141765d8d29f26e3ffda67cba (patch)
treeae1daa8083955fd40072e651bbc9ead80e551a2c /clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
parent269f0b1b69a8480ccc600aab2a0f5c7e87d75157 (diff)
downloadbcm5719-llvm-29fe6aeef345cc6141765d8d29f26e3ffda67cba.tar.gz
bcm5719-llvm-29fe6aeef345cc6141765d8d29f26e3ffda67cba.zip
Template instantiation for C++ delete expression
llvm-svn: 72216
Diffstat (limited to 'clang/lib/Sema/SemaTemplateInstantiateExpr.cpp')
-rw-r--r--clang/lib/Sema/SemaTemplateInstantiateExpr.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp b/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
index 340cabd085c..b9671c2c176 100644
--- a/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
+++ b/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
@@ -89,7 +89,7 @@ namespace {
OwningExprResult VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr *E);
OwningExprResult VisitCXXZeroInitValueExpr(CXXZeroInitValueExpr *E);
OwningExprResult VisitCXXNewExpr(CXXNewExpr *E);
- // FIXME: CXXDeleteExpr
+ OwningExprResult VisitCXXDeleteExpr(CXXDeleteExpr *E);
// FIXME: UnaryTypeTraitExpr
// FIXME: QualifiedDeclRefExpr
OwningExprResult VisitCXXExprWithTemporaries(CXXExprWithTemporaries *E);
@@ -936,6 +936,18 @@ TemplateExprInstantiator::VisitCXXNewExpr(CXXNewExpr *E) {
}
Sema::OwningExprResult
+TemplateExprInstantiator::VisitCXXDeleteExpr(CXXDeleteExpr *E) {
+ OwningExprResult Operand = Visit(E->getArgument());
+ if (Operand.isInvalid())
+ return SemaRef.ExprError();
+
+ return SemaRef.ActOnCXXDelete(E->getSourceRange().getBegin(),
+ E->isGlobalDelete(),
+ E->isArrayForm(),
+ move(Operand));
+}
+
+Sema::OwningExprResult
TemplateExprInstantiator::VisitCXXExprWithTemporaries(
CXXExprWithTemporaries *E) {
OwningExprResult SubExpr = Visit(E->getSubExpr());
OpenPOWER on IntegriCloud