]> granicus.if.org Git - clang/commitdiff
Remove unnecessary ASTContext parameter from
authorDouglas Gregor <dgregor@apple.com>
Thu, 1 Jul 2010 14:13:13 +0000 (14:13 +0000)
committerDouglas Gregor <dgregor@apple.com>
Thu, 1 Jul 2010 14:13:13 +0000 (14:13 +0000)
CXXRecordDecl::getDestructor(); no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107394 91177308-0d34-0410-b5e6-96231b3b80d8

15 files changed:
include/clang/AST/DeclCXX.h
lib/AST/DeclCXX.cpp
lib/CodeGen/CGBlocks.cpp
lib/CodeGen/CGCXX.cpp
lib/CodeGen/CGClass.cpp
lib/CodeGen/CGDecl.cpp
lib/CodeGen/CGDeclCXX.cpp
lib/CodeGen/CGException.cpp
lib/CodeGen/CGExpr.cpp
lib/CodeGen/CGExprCXX.cpp
lib/CodeGen/CGObjC.cpp
lib/Sema/SemaDecl.cpp
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaExprCXX.cpp
lib/Sema/SemaInit.cpp

index 33f34fa524da26314f05d5486072a8d70f5c716e..1fbed63b7191e9c595b39b038be9cae62188fe16 100644 (file)
@@ -776,7 +776,7 @@ public:
   CXXConstructorDecl *getDefaultConstructor(ASTContext &Context);
 
   /// getDestructor - Returns the destructor decl for this class.
-  CXXDestructorDecl *getDestructor(ASTContext &Context) const;
+  CXXDestructorDecl *getDestructor() const;
 
   /// isLocalClass - If the class is a local class [class.local], returns
   /// the enclosing function declaration.
index cd7afd98b63db15dbfa10a139b87a81a8a9c62ea..71b5835c1287b67043adb6de6a3c8f1bc087bbc0 100644 (file)
@@ -566,7 +566,8 @@ CXXRecordDecl::getDefaultConstructor(ASTContext &Context) {
   return 0;
 }
 
-CXXDestructorDecl *CXXRecordDecl::getDestructor(ASTContext &Context) const {
+CXXDestructorDecl *CXXRecordDecl::getDestructor() const {
+  ASTContext &Context = getASTContext();
   QualType ClassType = Context.getTypeDeclType(this);
 
   DeclarationName Name
index 96cea87d09ba54641ee95fb1c8f07653099cdaef..e5871b27d46804937b1503c8de839fcd88497f03 100644 (file)
@@ -372,8 +372,7 @@ llvm::Value *CodeGenFunction::BuildBlockLiteralTmp(const BlockExpr *BE) {
               if (CXXRecordDecl *ClassDecl = 
                     dyn_cast<CXXRecordDecl>(RT->getDecl())) {
                 if (!ClassDecl->hasTrivialDestructor()) {
-                  const CXXDestructorDecl *D = 
-                    ClassDecl->getDestructor(getContext());
+                  const CXXDestructorDecl *D = ClassDecl->getDestructor();
                   assert(D && "BuildBlockLiteralTmp - destructor is nul");
                   {
                     // Normal destruction. 
index 353a7bcf8f1bbbcebbcde83373d31155c94fdcd5..4f3572e1cc7a786a6af32caef6fec8a9918a9022 100644 (file)
@@ -97,7 +97,7 @@ bool CodeGenModule::TryEmitBaseDestructorAsAlias(const CXXDestructorDecl *D) {
   /// If we don't have a definition for the destructor yet, don't
   /// emit.  We can't emit aliases to declarations; that's just not
   /// how aliases work.
-  const CXXDestructorDecl *BaseD = UniqueBase->getDestructor(getContext());
+  const CXXDestructorDecl *BaseD = UniqueBase->getDestructor();
   if (!BaseD->isImplicit() && !BaseD->getBody())
     return true;
 
index 4028cda6b661adf2bbe55583504a102ff5404504..085cfd316878ffc936a41e36f6453d71e438997c 100644 (file)
@@ -342,7 +342,7 @@ static void EmitBaseInitializer(CodeGenFunction &CGF,
     // FIXME: Is this OK for C++0x delegating constructors?
     CodeGenFunction::EHCleanupBlock Cleanup(CGF);
 
-    CXXDestructorDecl *DD = BaseClassDecl->getDestructor(CGF.getContext());
+    CXXDestructorDecl *DD = BaseClassDecl->getDestructor();
     CGF.EmitCXXDestructorCall(DD, Dtor_Base, isBaseVirtual, V);
   }
 }
@@ -539,7 +539,7 @@ static void EmitMemberInitializer(CodeGenFunction &CGF,
       llvm::Value *ThisPtr = CGF.LoadCXXThis();
       LValue LHS = CGF.EmitLValueForField(ThisPtr, Field, 0);
 
-      CXXDestructorDecl *DD = RD->getDestructor(CGF.getContext());
+      CXXDestructorDecl *DD = RD->getDestructor();
       CGF.EmitCXXDestructorCall(DD, Dtor_Complete, /*ForVirtualBase=*/false,
                                 LHS.getAddress());
     }
@@ -783,7 +783,7 @@ void CodeGenFunction::EmitDtorEpilogue(const CXXDestructorDecl *DD,
       // Ignore trivial destructors.
       if (BaseClassDecl->hasTrivialDestructor())
         continue;
-      const CXXDestructorDecl *D = BaseClassDecl->getDestructor(getContext());
+      const CXXDestructorDecl *D = BaseClassDecl->getDestructor();
       llvm::Value *V = 
         GetAddressOfDirectBaseInCompleteClass(LoadCXXThis(),
                                               ClassDecl, BaseClassDecl,
@@ -838,10 +838,10 @@ void CodeGenFunction::EmitDtorEpilogue(const CXXDestructorDecl *DD,
       BasePtr = llvm::PointerType::getUnqual(BasePtr);
       llvm::Value *BaseAddrPtr =
         Builder.CreateBitCast(LHS.getAddress(), BasePtr);
-      EmitCXXAggrDestructorCall(FieldClassDecl->getDestructor(getContext()),
+      EmitCXXAggrDestructorCall(FieldClassDecl->getDestructor(),
                                 Array, BaseAddrPtr);
     } else
-      EmitCXXDestructorCall(FieldClassDecl->getDestructor(getContext()),
+      EmitCXXDestructorCall(FieldClassDecl->getDestructor(),
                             Dtor_Complete, /*ForVirtualBase=*/false,
                             LHS.getAddress());
   }
@@ -862,7 +862,7 @@ void CodeGenFunction::EmitDtorEpilogue(const CXXDestructorDecl *DD,
     if (BaseClassDecl->hasTrivialDestructor())
       continue;
 
-    const CXXDestructorDecl *D = BaseClassDecl->getDestructor(getContext());    
+    const CXXDestructorDecl *D = BaseClassDecl->getDestructor();    
     llvm::Value *V = 
       GetAddressOfDirectBaseInCompleteClass(LoadCXXThis(), ClassDecl, 
                                             BaseClassDecl, 
index 7498a070734e2c0527f5ce964caf8d5d81e70f88..5c3055f5b6122b23fe9f5468d20ceecb51a7a7d7 100644 (file)
@@ -678,7 +678,7 @@ void CodeGenFunction::EmitLocalBlockVarDecl(const VarDecl &D) {
           Loc = Builder.CreateStructGEP(DeclPtr, getByRefValueLLVMField(&D), 
                                         D.getNameAsString());
         
-        const CXXDestructorDecl *D = ClassDecl->getDestructor(getContext());
+        const CXXDestructorDecl *D = ClassDecl->getDestructor();
         assert(D && "EmitLocalBlockVarDecl - destructor is nul");
         
         if (const ConstantArrayType *Array = 
index 3f4919fbe9c46b69e4dbc68efab221d52418c66e..803ee10721a2e55190bbc981447ad2c705284e0b 100644 (file)
@@ -66,7 +66,7 @@ static void EmitDeclDestroy(CodeGenFunction &CGF, const VarDecl &D,
   if (RD->hasTrivialDestructor())
     return;
   
-  CXXDestructorDecl *Dtor = RD->getDestructor(Context);
+  CXXDestructorDecl *Dtor = RD->getDestructor();
   
   llvm::Constant *DtorFn;
   if (Array) {
index 83d91edb10609eea8c921bb1abf8e3b284293596..182c2ea877f920ce74114a746bd1226e9fdb9d41 100644 (file)
@@ -304,7 +304,7 @@ void CodeGenFunction::EmitCXXThrowExpr(const CXXThrowExpr *E) {
   if (const RecordType *RecordTy = ThrowType->getAs<RecordType>()) {
     CXXRecordDecl *Record = cast<CXXRecordDecl>(RecordTy->getDecl());
     if (!Record->hasTrivialDestructor()) {
-      CXXDestructorDecl *DtorD = Record->getDestructor(getContext());
+      CXXDestructorDecl *DtorD = Record->getDestructor();
       Dtor = CGM.GetAddrOfCXXDestructor(DtorD, Dtor_Complete);
       Dtor = llvm::ConstantExpr::getBitCast(Dtor, Int8PtrTy);
     }
index 2bda5adb42b0819ce87244de0f67f8cee3bebe7b..fe4f7a175223b0af789ad15faae6254855f64dd6 100644 (file)
@@ -275,7 +275,7 @@ EmitExprForReferenceBinding(CodeGenFunction& CGF, const Expr* E,
       if (const RecordType *RT = E->getType()->getAs<RecordType>()) {
         CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(RT->getDecl());
         if (!ClassDecl->hasTrivialDestructor())
-          ReferenceTemporaryDtor = ClassDecl->getDestructor(CGF.getContext());
+          ReferenceTemporaryDtor = ClassDecl->getDestructor();
       }
     }
 
index a23dc154c58d99a61938cca2f706cfa857033b43..f2e6a11292b7ad053c381419dd27d464b837722b 100644 (file)
@@ -829,7 +829,7 @@ void CodeGenFunction::EmitCXXDeleteExpr(const CXXDeleteExpr *E) {
   if (const RecordType *RT = DeleteTy->getAs<RecordType>()) {
     if (CXXRecordDecl *RD = dyn_cast<CXXRecordDecl>(RT->getDecl())) {
       if (!RD->hasTrivialDestructor()) {
-        const CXXDestructorDecl *Dtor = RD->getDestructor(getContext());
+        const CXXDestructorDecl *Dtor = RD->getDestructor();
         if (E->isArrayForm()) {
           llvm::Value *AllocatedObjectPtr;
           llvm::Value *NumElements;
index 30f7ab55ce9aeebef40099923fa60d0a7b328457..2e629bf856dcce105cf25b4fcee98ffa4025424f 100644 (file)
@@ -461,7 +461,7 @@ void CodeGenFunction::GenerateObjCCtorDtorMethod(ObjCImplementationDecl *IMP,
                                     LoadObjCSelf(), Ivar, 0);
       const RecordType *RT = FieldType->getAs<RecordType>();
       CXXRecordDecl *FieldClassDecl = cast<CXXRecordDecl>(RT->getDecl());
-      CXXDestructorDecl *Dtor = FieldClassDecl->getDestructor(getContext());
+      CXXDestructorDecl *Dtor = FieldClassDecl->getDestructor();
       if (!Dtor->isTrivial()) {
         if (Array) {
           const llvm::Type *BasePtr = ConvertType(FieldType);
index 500d73eb9b44ced67199b763f9456a6bf375976f..27455dba497ab838235c256e3da464cf84e0d6e1 100644 (file)
@@ -5951,7 +5951,7 @@ void Sema::DiagnoseNontrivial(const RecordType* T, CXXSpecialMember member) {
 
   case CXXDestructor:
     if (RD->hasUserDeclaredDestructor()) {
-      SourceLocation DtorLoc = RD->getDestructor(Context)->getLocation();
+      SourceLocation DtorLoc = RD->getDestructor()->getLocation();
       Diag(DtorLoc, diag::note_nontrivial_user_defined) << QT << member;
       return;
     }
index 62dd5ff31e3444798d5dd727a043f7dec1d410b0..9273780536530cf1f861dab8d64a9f8061d77bce 100644 (file)
@@ -2230,7 +2230,7 @@ Sema::MarkBaseAndMemberDestructorsReferenced(SourceLocation Location,
     if (FieldClassDecl->hasTrivialDestructor())
       continue;
 
-    CXXDestructorDecl *Dtor = FieldClassDecl->getDestructor(Context);
+    CXXDestructorDecl *Dtor = FieldClassDecl->getDestructor();
     CheckDestructorAccess(Field->getLocation(), Dtor,
                           PDiag(diag::err_access_dtor_field)
                             << Field->getDeclName()
@@ -2256,7 +2256,7 @@ Sema::MarkBaseAndMemberDestructorsReferenced(SourceLocation Location,
     if (BaseClassDecl->hasTrivialDestructor())
       continue;
 
-    CXXDestructorDecl *Dtor = BaseClassDecl->getDestructor(Context);
+    CXXDestructorDecl *Dtor = BaseClassDecl->getDestructor();
 
     // FIXME: caret should be on the start of the class name
     CheckDestructorAccess(Base->getSourceRange().getBegin(), Dtor,
@@ -2283,7 +2283,7 @@ Sema::MarkBaseAndMemberDestructorsReferenced(SourceLocation Location,
     if (BaseClassDecl->hasTrivialDestructor())
       continue;
 
-    CXXDestructorDecl *Dtor = BaseClassDecl->getDestructor(Context);
+    CXXDestructorDecl *Dtor = BaseClassDecl->getDestructor();
     CheckDestructorAccess(ClassDecl->getLocation(), Dtor,
                           PDiag(diag::err_access_dtor_vbase)
                             << VBase->getType());
@@ -2893,7 +2893,7 @@ void Sema::AddImplicitlyDeclaredMembersToClass(Scope *S,
          B != BEnd; ++B) {
       if (const RecordType *BaseType = B->getType()->getAs<RecordType>())
         ExceptSpec.CalledDecl(
-              cast<CXXRecordDecl>(BaseType->getDecl())->getDestructor(Context));
+                    cast<CXXRecordDecl>(BaseType->getDecl())->getDestructor());
     }
          
     // Virtual base-class destructors.
@@ -2902,7 +2902,7 @@ void Sema::AddImplicitlyDeclaredMembersToClass(Scope *S,
          B != BEnd; ++B) {
       if (const RecordType *BaseType = B->getType()->getAs<RecordType>())
         ExceptSpec.CalledDecl(
-              cast<CXXRecordDecl>(BaseType->getDecl())->getDestructor(Context));
+                    cast<CXXRecordDecl>(BaseType->getDecl())->getDestructor());
     }
 
     // Field destructors.
@@ -2912,7 +2912,7 @@ void Sema::AddImplicitlyDeclaredMembersToClass(Scope *S,
       if (const RecordType *RecordTy
                 = Context.getBaseElementType(F->getType())->getAs<RecordType>())
         ExceptSpec.CalledDecl(
-              cast<CXXRecordDecl>(RecordTy->getDecl())->getDestructor(Context));
+                    cast<CXXRecordDecl>(RecordTy->getDecl())->getDestructor());
     }
     
     QualType Ty = Context.getFunctionType(Context.VoidTy,
@@ -5057,7 +5057,7 @@ void Sema::FinalizeVarWithDestructor(VarDecl *VD, const RecordType *Record) {
   CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(Record->getDecl());
   if (!ClassDecl->isInvalidDecl() && !VD->isInvalidDecl() &&
       !ClassDecl->hasTrivialDestructor() && !ClassDecl->isDependentContext()) {
-    CXXDestructorDecl *Destructor = ClassDecl->getDestructor(Context);
+    CXXDestructorDecl *Destructor = ClassDecl->getDestructor();
     MarkDeclarationReferenced(VD->getLocation(), Destructor);
     CheckDestructorAccess(VD->getLocation(), Destructor,
                           PDiag(diag::err_access_dtor_var)
@@ -6529,7 +6529,7 @@ void Sema::SetIvarInitializers(ObjCImplementationDecl *ObjCImplementation) {
                                                         ->getAs<RecordType>()) {
                     CXXRecordDecl *RD = cast<CXXRecordDecl>(RecordTy->getDecl());
         if (CXXDestructorDecl *Destructor
-              = const_cast<CXXDestructorDecl*>(RD->getDestructor(Context))) {
+                        = const_cast<CXXDestructorDecl*>(RD->getDestructor())) {
           MarkDeclarationReferenced(Field->getLocation(), Destructor);
           CheckDestructorAccess(Field->getLocation(), Destructor,
                             PDiag(diag::err_access_dtor_ivar)
index 3c64584bfcea20bb6b956f699c2321e7ecea833a..779304641f4cf0beab9ee9b7de02104ca18f21a4 100644 (file)
@@ -473,8 +473,8 @@ bool Sema::CheckCXXThrowOperand(SourceLocation ThrowLoc, Expr *&E) {
   if (RD->hasTrivialDestructor())
     return false;
 
-  CXXDestructorDecl *Destructor =
-    const_cast<CXXDestructorDecl*>(RD->getDestructor(Context));
+  CXXDestructorDecl *Destructor 
+    = const_cast<CXXDestructorDecl*>(RD->getDestructor());
   if (!Destructor)
     return false;
 
@@ -1475,7 +1475,7 @@ Sema::ActOnCXXDelete(SourceLocation StartLoc, bool UseGlobal,
         return ExprError();
       
       if (!RD->hasTrivialDestructor())
-        if (const CXXDestructorDecl *Dtor = RD->getDestructor(Context))
+        if (const CXXDestructorDecl *Dtor = RD->getDestructor())
           MarkDeclarationReferenced(StartLoc,
                                     const_cast<CXXDestructorDecl*>(Dtor));
     }
@@ -2639,11 +2639,10 @@ Sema::OwningExprResult Sema::MaybeBindToTemporary(Expr *E) {
   if (RD->hasTrivialDestructor())
     return Owned(E);
 
-  CXXTemporary *Temp = CXXTemporary::Create(Context,
-                                            RD->getDestructor(Context));
+  CXXTemporary *Temp = CXXTemporary::Create(Context, RD->getDestructor());
   ExprTemporaries.push_back(Temp);
   if (CXXDestructorDecl *Destructor =
-        const_cast<CXXDestructorDecl*>(RD->getDestructor(Context))) {
+        const_cast<CXXDestructorDecl*>(RD->getDestructor())) {
     MarkDeclarationReferenced(E->getExprLoc(), Destructor);
     CheckDestructorAccess(E->getExprLoc(), Destructor,
                           PDiag(diag::err_access_dtor_temp)
index 3acec5667094600a16e7e142ac17699bdbe98171..c1569620dab79789be769ed0e6c4b57d945ba8ed 100644 (file)
@@ -3709,7 +3709,7 @@ InitializationSequence::Perform(Sema &S,
         QualType T = CurInitExpr->getType();
         if (const RecordType *Record = T->getAs<RecordType>()) {
           CXXDestructorDecl *Destructor
-            = cast<CXXRecordDecl>(Record->getDecl())->getDestructor(S.Context);
+            = cast<CXXRecordDecl>(Record->getDecl())->getDestructor();
           S.CheckDestructorAccess(CurInitExpr->getLocStart(), Destructor, 
                                   S.PDiag(diag::err_access_dtor_temp) << T);
           S.MarkDeclarationReferenced(CurInitExpr->getLocStart(), Destructor);