Skip to content

Commit 6c92d47

Browse files
committed
Revert "[clang] Do not diagnose unused deleted operator delete[] (llvm#134357)"
This reverts commit 16a1d5d.
1 parent 460d480 commit 6c92d47

File tree

4 files changed

+6
-27
lines changed

4 files changed

+6
-27
lines changed

clang/include/clang/AST/DeclCXX.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2878,7 +2878,7 @@ class CXXDestructorDecl : public CXXMethodDecl {
28782878
static CXXDestructorDecl *CreateDeserialized(ASTContext &C, GlobalDeclID ID);
28792879

28802880
void setOperatorDelete(FunctionDecl *OD, Expr *ThisArg);
2881-
void setOperatorArrayDelete(FunctionDecl *OD);
2881+
void setOperatorArrayDelete(FunctionDecl *OD, Expr *ThisArg);
28822882

28832883
const FunctionDecl *getOperatorDelete() const {
28842884
return getCanonicalDecl()->OperatorDelete;

clang/lib/AST/DeclCXX.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3064,7 +3064,8 @@ void CXXDestructorDecl::setOperatorDelete(FunctionDecl *OD, Expr *ThisArg) {
30643064
}
30653065
}
30663066

3067-
void CXXDestructorDecl::setOperatorArrayDelete(FunctionDecl *OD) {
3067+
void CXXDestructorDecl::setOperatorArrayDelete(FunctionDecl *OD,
3068+
Expr *ThisArg) {
30683069
auto *First = cast<CXXDestructorDecl>(getFirstDecl());
30693070
if (OD && !First->OperatorArrayDelete)
30703071
First->OperatorArrayDelete = OD;

clang/lib/Sema/SemaDeclCXX.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11100,12 +11100,12 @@ bool Sema::CheckDestructor(CXXDestructorDecl *Destructor) {
1110011100
// Lookup delete[] too in case we have to emit a vector deleting dtor;
1110111101
DeclarationName VDeleteName =
1110211102
Context.DeclarationNames.getCXXOperatorName(OO_Array_Delete);
11103-
FunctionDecl *ArrOperatorDelete = FindDeallocationFunctionForDestructor(
11104-
Loc, RD, VDeleteName, /*Diagnose=*/false);
11103+
FunctionDecl *ArrOperatorDelete =
11104+
FindDeallocationFunctionForDestructor(Loc, RD, VDeleteName);
1110511105
// delete[] in the TU will make sure the operator is referenced and its
1110611106
// uses diagnosed, otherwise vector deleting dtor won't be called anyway,
1110711107
// so just record it in the destructor.
11108-
Destructor->setOperatorArrayDelete(ArrOperatorDelete);
11108+
Destructor->setOperatorArrayDelete(ArrOperatorDelete, ThisArg);
1110911109
}
1111011110
}
1111111111

clang/test/SemaCXX/gh134265.cpp

Lines changed: 0 additions & 22 deletions
This file was deleted.

0 commit comments

Comments
 (0)