aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-11-15 22:49:34 +0000
committerAnders Carlsson <andersca@mac.com>2009-11-15 22:49:34 +0000
commit6d7013940a37f03fd324ef438ff984a5369013b0 (patch)
tree4d2623e805b25334a720e7102b552e8e19b20754 /include
parent70f5bc77dbe4172bde860e15d8b3c29e0d5005cb (diff)
Make sure that virtual destructors have delete operators.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88877 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/clang/AST/DeclCXX.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/clang/AST/DeclCXX.h b/include/clang/AST/DeclCXX.h
index eb3205f00f..6ede5dee1e 100644
--- a/include/clang/AST/DeclCXX.h
+++ b/include/clang/AST/DeclCXX.h
@@ -1293,12 +1293,15 @@ private:
uintptr_t *BaseOrMemberDestructions;
unsigned NumBaseOrMemberDestructions;
+ FunctionDecl *OperatorDelete;
+
CXXDestructorDecl(CXXRecordDecl *RD, SourceLocation L,
DeclarationName N, QualType T,
bool isInline, bool isImplicitlyDeclared)
: CXXMethodDecl(CXXDestructor, RD, L, N, T, /*DInfo=*/0, false, isInline),
ImplicitlyDefined(false),
- BaseOrMemberDestructions(0), NumBaseOrMemberDestructions(0) {
+ BaseOrMemberDestructions(0), NumBaseOrMemberDestructions(0),
+ OperatorDelete(0) {
setImplicit(isImplicitlyDeclared);
}
virtual void Destroy(ASTContext& C);
@@ -1327,6 +1330,9 @@ public:
ImplicitlyDefined = ID;
}
+ void setOperatorDelete(FunctionDecl *OD) { OperatorDelete = OD; }
+ const FunctionDecl *getOperatorDelete() const { return OperatorDelete; }
+
/// destr_iterator - Iterates through the member/base destruction list.
/// destr_const_iterator - Iterates through the member/base destruction list.