]> granicus.if.org Git - clang/commitdiff
Minor renaming/refactoring. No change in functionality.
authorFariborz Jahanian <fjahanian@apple.com>
Mon, 3 Aug 2009 19:13:25 +0000 (19:13 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Mon, 3 Aug 2009 19:13:25 +0000 (19:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77985 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/Sema.h
lib/Sema/SemaDecl.cpp
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaExprCXX.cpp

index dbf65782fb22c0a79b979ab2b6d1165c4d9fbb9f..0dbb9f81d1e69c01850266b3cf6d510074fa1d1f 100644 (file)
@@ -1673,9 +1673,9 @@ public:
                                     QualType DeclInitType, 
                                     Expr **Exprs, unsigned NumExprs);
 
-  /// MarkDestructorReferenced - Prepare for calling destructor on the
-  /// constructed decl.
-  void MarkDestructorReferenced(SourceLocation Loc, QualType DeclInitType);
+  /// FinalizeVarWithDestructor - Prepare for calling destructor on the
+  /// constructed variable.
+  void FinalizeVarWithDestructor(VarDecl *VD, QualType DeclInitType);
   
   /// DefineImplicitDefaultConstructor - Checks for feasibility of 
   /// defining this constructor as the default constructor.
index 8ee798aaf7d26e16e5e0e7f84fd1e648ef6f9eea..90a1744c88753305bf382f08a5fb79d3c7b6569e 100644 (file)
@@ -3201,9 +3201,7 @@ void Sema::ActOnUninitializedDecl(DeclPtrTy dcl,
         else { 
           if (!RD->hasTrivialConstructor())
             InitializeVarWithConstructor(Var, Constructor, InitType, 0, 0);
-          // FIXME. Must do all that is needed to destroy the object
-          // on scope exit. For now, just mark the destructor as used.
-          MarkDestructorReferenced(Var->getLocation(), InitType);
+          FinalizeVarWithDestructor(Var, InitType);
         }
       }
     }
index eedbdcefc612493bf02c8194b8af4cd16167d95a..974dfcc071aa37684a23680c6a3f2534130cef61 100644 (file)
@@ -2371,14 +2371,14 @@ void Sema::InitializeVarWithConstructor(VarDecl *VD,
   VD->setInit(Context, Temp);
 }
 
-void Sema::MarkDestructorReferenced(SourceLocation Loc, QualType DeclInitType)
+void Sema::FinalizeVarWithDestructor(VarDecl *VD, QualType DeclInitType)
 {
   CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(
                                   DeclInitType->getAs<RecordType>()->getDecl());
   if (!ClassDecl->hasTrivialDestructor())
     if (CXXDestructorDecl *Destructor = 
         const_cast<CXXDestructorDecl*>(ClassDecl->getDestructor(Context)))
-      MarkDeclarationReferenced(Loc, Destructor);
+      MarkDeclarationReferenced(VD->getLocation(), Destructor);
 }
 
 /// AddCXXDirectInitializerToDecl - This action is called immediately after 
@@ -2447,9 +2447,7 @@ void Sema::AddCXXDirectInitializerToDecl(DeclPtrTy Dcl,
       VDecl->setCXXDirectInitializer(true);
       InitializeVarWithConstructor(VDecl, Constructor, DeclInitType, 
                                    (Expr**)Exprs.release(), NumExprs);
-      // FIXME. Must do all that is needed to destroy the object
-      // on scope exit. For now, just mark the destructor as used.
-      MarkDestructorReferenced(VDecl->getLocation(), DeclInitType);
+      FinalizeVarWithDestructor(VDecl, DeclInitType);
     }
     return;
   }
index 26449c1260858e778898a641a387732d27c7234d..dc45b011694a2816f3ff0c733242d2f1efac521f 100644 (file)
@@ -1576,7 +1576,9 @@ Sema::OwningExprResult Sema::MaybeBindToTemporary(Expr *E) {
   CXXTemporary *Temp = CXXTemporary::Create(Context, 
                                             RD->getDestructor(Context));
   ExprTemporaries.push_back(Temp);
-  MarkDestructorReferenced(E->getExprLoc(), E->getType());
+  if (CXXDestructorDecl *Destructor =
+        const_cast<CXXDestructorDecl*>(RD->getDestructor(Context)))
+    MarkDeclarationReferenced(E->getExprLoc(), Destructor);
   // FIXME: Add the temporary to the temporaries vector.
   return Owned(CXXBindTemporaryExpr::Create(Context, Temp, E));
 }