diff options
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 30 |
1 files changed, 2 insertions, 28 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index aa36a79142e5..8030aac3d877 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -11139,11 +11139,9 @@ bool Sema::CheckDestructor(CXXDestructorDecl *Destructor) { else Loc = RD->getLocation(); - DeclarationName Name = - Context.DeclarationNames.getCXXOperatorName(OO_Delete); // If we have a virtual destructor, look up the deallocation function if (FunctionDecl *OperatorDelete = FindDeallocationFunctionForDestructor( - Loc, RD, /*Diagnose=*/true, /*LookForGlobal=*/false, Name)) { + Loc, RD, /*Diagnose=*/true, /*LookForGlobal=*/false)) { Expr *ThisArg = nullptr; // If the notional 'delete this' expression requires a non-trivial @@ -11191,33 +11189,9 @@ bool Sema::CheckDestructor(CXXDestructorDecl *Destructor) { // delete calls that require it. FunctionDecl *GlobalOperatorDelete = FindDeallocationFunctionForDestructor(Loc, RD, /*Diagnose*/ false, - /*LookForGlobal*/ true, Name); + /*LookForGlobal*/ true); Destructor->setOperatorGlobalDelete(GlobalOperatorDelete); } - - if (Context.getTargetInfo().emitVectorDeletingDtors( - Context.getLangOpts())) { - // Lookup delete[] too in case we have to emit a vector deleting dtor. - DeclarationName VDeleteName = - Context.DeclarationNames.getCXXOperatorName(OO_Array_Delete); - FunctionDecl *ArrOperatorDelete = FindDeallocationFunctionForDestructor( - Loc, RD, /*Diagnose*/ false, - /*LookForGlobal*/ false, VDeleteName); - if (ArrOperatorDelete && isa<CXXMethodDecl>(ArrOperatorDelete)) { - FunctionDecl *GlobalArrOperatorDelete = - FindDeallocationFunctionForDestructor(Loc, RD, /*Diagnose*/ false, - /*LookForGlobal*/ true, - VDeleteName); - Destructor->setGlobalOperatorArrayDelete(GlobalArrOperatorDelete); - } else if (!ArrOperatorDelete) { - ArrOperatorDelete = FindDeallocationFunctionForDestructor( - Loc, RD, /*Diagnose*/ false, - /*LookForGlobal*/ true, VDeleteName); - } - assert(ArrOperatorDelete && - "Should've found at least global array delete"); - Destructor->setOperatorArrayDelete(ArrOperatorDelete); - } } } |
