summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclCXX.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 76623a90d56..117c37b636e 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -4469,6 +4469,15 @@ void Sema::CheckCompletedCXXClass(CXXRecordDecl *Record) {
}
}
}
+
+ if (Record->hasUserDeclaredDestructor()) {
+ // The Microsoft ABI requires that we perform the destructor body
+ // checks (i.e. operator delete() lookup) in any translataion unit, as
+ // any translation unit may need to emit a deleting destructor.
+ if (Context.getTargetInfo().getCXXABI().isMicrosoft() &&
+ !Record->getDestructor()->isDeleted())
+ CheckDestructor(Record->getDestructor());
+ }
}
// C++11 [dcl.constexpr]p8: A constexpr specifier for a non-static member
OpenPOWER on IntegriCloud