From: Douglas Gregor Date: Fri, 15 May 2009 20:47:12 +0000 (+0000) Subject: Allow instantiation of NULL expressions and statements X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=50557a77cfc5c182d450766bf77b1f017305d494;p=clang Allow instantiation of NULL expressions and statements git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71889 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaTemplateInstantiateExpr.cpp b/lib/Sema/SemaTemplateInstantiateExpr.cpp index c2007c6e3b..08c388efea 100644 --- a/lib/Sema/SemaTemplateInstantiateExpr.cpp +++ b/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/lib/Sema/SemaTemplateInstantiateStmt.cpp b/lib/Sema/SemaTemplateInstantiateStmt.cpp index 957402ac6f..2a3f48a469 100644 --- a/lib/Sema/SemaTemplateInstantiateStmt.cpp +++ b/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); }