summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-05-15 20:47:12 +0000
committerDouglas Gregor <dgregor@apple.com>2009-05-15 20:47:12 +0000
commit3f17b47c7e6cfc550cfe02da068ce417e8046ca3 (patch)
tree37f90dfc7ac737467ce533d43529fb06bbd69ce2 /clang/lib/Sema
parent0aa5c4565d822e77c73a815fedf87cd2bc825ec9 (diff)
downloadbcm5719-llvm-3f17b47c7e6cfc550cfe02da068ce417e8046ca3.tar.gz
bcm5719-llvm-3f17b47c7e6cfc550cfe02da068ce417e8046ca3.zip
Allow instantiation of NULL expressions and statements
llvm-svn: 71889
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r--clang/lib/Sema/SemaTemplateInstantiateExpr.cpp3
-rw-r--r--clang/lib/Sema/SemaTemplateInstantiateStmt.cpp3
2 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp b/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
index c2007c6e3b3..08c388efea1 100644
--- a/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
+++ b/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
@@ -432,6 +432,9 @@ TemplateExprInstantiator::VisitCXXThisExpr(CXXThisExpr *E) {
Sema::OwningExprResult
Sema::InstantiateExpr(Expr *E, const TemplateArgumentList &TemplateArgs) {
+ if (!E)
+ return Owned((Expr *)0);
+
TemplateExprInstantiator Instantiator(*this, TemplateArgs);
return Instantiator.Visit(E);
}
diff --git a/clang/lib/Sema/SemaTemplateInstantiateStmt.cpp b/clang/lib/Sema/SemaTemplateInstantiateStmt.cpp
index 957402ac6f6..2a3f48a469d 100644
--- a/clang/lib/Sema/SemaTemplateInstantiateStmt.cpp
+++ b/clang/lib/Sema/SemaTemplateInstantiateStmt.cpp
@@ -166,6 +166,9 @@ Sema::OwningStmtResult TemplateStmtInstantiator::VisitExpr(Expr *E) {
Sema::OwningStmtResult
Sema::InstantiateStmt(Stmt *S, const TemplateArgumentList &TemplateArgs) {
+ if (!S)
+ return Owned((Stmt *)0);
+
TemplateStmtInstantiator Instantiator(*this, TemplateArgs);
return Instantiator.Visit(S);
}
OpenPOWER on IntegriCloud