summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/RecordLayoutBuilder.cpp
diff options
context:
space:
mode:
authorWarren Hunt <whunt@google.com>2013-10-14 20:14:09 +0000
committerWarren Hunt <whunt@google.com>2013-10-14 20:14:09 +0000
commit42be77672a93fb07ece46cd6b253f08dc79740e1 (patch)
tree75c4ac6a74c925ea26aad4675067f1dca8c86d0e /clang/lib/AST/RecordLayoutBuilder.cpp
parenta443563ff09cd4a93257326b685167e36935af49 (diff)
downloadbcm5719-llvm-42be77672a93fb07ece46cd6b253f08dc79740e1.tar.gz
bcm5719-llvm-42be77672a93fb07ece46cd6b253f08dc79740e1.zip
Correctly check for distructors when realizing vtordisps
This patch fixes the distructor test when checking for vtordisp requirements in microsoft record layout. A test case is also included. Addresses: http://llvm.org/bugs/show_bug.cgi?id=16406#c7 llvm-svn: 192616
Diffstat (limited to 'clang/lib/AST/RecordLayoutBuilder.cpp')
-rw-r--r--clang/lib/AST/RecordLayoutBuilder.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/AST/RecordLayoutBuilder.cpp b/clang/lib/AST/RecordLayoutBuilder.cpp
index 10c7b5d88fb..05eeae154d0 100644
--- a/clang/lib/AST/RecordLayoutBuilder.cpp
+++ b/clang/lib/AST/RecordLayoutBuilder.cpp
@@ -2989,7 +2989,7 @@ MicrosoftRecordLayoutBuilder::computeVtorDispSet(const CXXRecordDecl *RD) {
for (CXXRecordDecl::method_iterator i = RD->method_begin(),
e = RD->method_end();
i != e; ++i)
- if ((*i)->isVirtual() && (*i) != RD->getDestructor())
+ if ((*i)->isVirtual() && !isa<CXXDestructorDecl>(*i))
Work.insert(*i);
while (!Work.empty()) {
const CXXMethodDecl *MD = *Work.begin();
OpenPOWER on IntegriCloud