]> granicus.if.org Git - clang/commitdiff
Add NullStmt::Clone and use it
authorAnders Carlsson <andersca@mac.com>
Fri, 15 May 2009 00:21:21 +0000 (00:21 +0000)
committerAnders Carlsson <andersca@mac.com>
Fri, 15 May 2009 00:21:21 +0000 (00:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71823 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/Stmt.h
lib/AST/Stmt.cpp
lib/Sema/SemaTemplateInstantiateExpr.cpp

index 5165d2ab2eacc4552082949ad509cc4a75fd485c..99e49722af30d72448f1e7fd58b731c3f5e5fb5e 100644 (file)
@@ -290,6 +290,8 @@ public:
   /// \brief Build an empty null statement.
   explicit NullStmt(EmptyShell Empty) : Stmt(NullStmtClass, Empty) { }
 
+  NullStmt* Clone(ASTContext &C) const;
+
   SourceLocation getSemiLoc() const { return SemiLoc; }
   void setSemiLoc(SourceLocation L) { SemiLoc = L; }
 
index 02f5eee8287829796aa100563bf380b6a9404dc5..f8f6e067e1a64e574c11f53045bea3d651b95e3c 100644 (file)
@@ -98,6 +98,10 @@ bool Stmt::CollectingStats(bool enable) {
   return StatSwitch;
 }
 
+NullStmt* NullStmt::Clone(ASTContext &C) const {
+  return new (C) NullStmt(SemiLoc);
+}
+
 void CompoundStmt::setStmts(ASTContext &C, Stmt **Stmts, unsigned NumStmts) {
   if (this->Body)
     C.Deallocate(Body);
index e747236204b4d9e8a0ec3fe188ed3fbe67b24f6c..50d5d4442f169134b780d3337c41d598f08c1af0 100644 (file)
@@ -480,7 +480,7 @@ Sema::OwningStmtResult TemplateStmtInstantiator::VisitDeclStmt(DeclStmt *S) {
 }
 
 Sema::OwningStmtResult TemplateStmtInstantiator::VisitNullStmt(NullStmt *S) {
-  return SemaRef.Owned(new (SemaRef.Context) NullStmt(S->getSemiLoc()));
+  return SemaRef.Owned(S->Clone(SemaRef.Context));
 }
 
 Sema::OwningStmtResult TemplateStmtInstantiator::VisitLabelStmt(LabelStmt *S) {