From a83f7ed3de1ce98d633dfb6bb223bb7711893dce Mon Sep 17 00:00:00 2001 From: Fariborz Jahanian Date: Mon, 3 Aug 2009 19:13:25 +0000 Subject: [PATCH] Minor renaming/refactoring. No change in functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77985 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Sema/Sema.h | 6 +++--- lib/Sema/SemaDecl.cpp | 4 +--- lib/Sema/SemaDeclCXX.cpp | 8 +++----- lib/Sema/SemaExprCXX.cpp | 4 +++- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h index dbf65782fb..0dbb9f81d1 100644 --- a/lib/Sema/Sema.h +++ b/lib/Sema/Sema.h @@ -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. diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index 8ee798aaf7..90a1744c88 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -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); } } } diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp index eedbdcefc6..974dfcc071 100644 --- a/lib/Sema/SemaDeclCXX.cpp +++ b/lib/Sema/SemaDeclCXX.cpp @@ -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( DeclInitType->getAs()->getDecl()); if (!ClassDecl->hasTrivialDestructor()) if (CXXDestructorDecl *Destructor = const_cast(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; } diff --git a/lib/Sema/SemaExprCXX.cpp b/lib/Sema/SemaExprCXX.cpp index 26449c1260..dc45b01169 100644 --- a/lib/Sema/SemaExprCXX.cpp +++ b/lib/Sema/SemaExprCXX.cpp @@ -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(RD->getDestructor(Context))) + MarkDeclarationReferenced(E->getExprLoc(), Destructor); // FIXME: Add the temporary to the temporaries vector. return Owned(CXXBindTemporaryExpr::Create(Context, Temp, E)); } -- 2.50.1