diff options
author | Reid Kleckner <reid@kleckner.net> | 2013-05-29 16:18:30 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2013-05-29 16:18:30 +0000 |
commit | 5d7f29815556b8a2bdeef1999cfbad2daad5b15f (patch) | |
tree | d7bb2a9a20438ae34316110888a8e29cc574aebd /clang/lib/AST/RecordLayoutBuilder.cpp | |
parent | 20c6f54b85f6097be4e9a28a905fe59b8724bcb3 (diff) | |
download | bcm5719-llvm-5d7f29815556b8a2bdeef1999cfbad2daad5b15f.tar.gz bcm5719-llvm-5d7f29815556b8a2bdeef1999cfbad2daad5b15f.zip |
[ms-cxxabi] There are no key functions in the Microsoft C++ ABI
MSVC's class data is always comdat, so clang's should always be
linkonce_odr in LLVM IR.
Reviewers: pcc
Differential Revision: http://llvm-reviews.chandlerc.com/D838
llvm-svn: 182865
Diffstat (limited to 'clang/lib/AST/RecordLayoutBuilder.cpp')
-rw-r--r-- | clang/lib/AST/RecordLayoutBuilder.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/AST/RecordLayoutBuilder.cpp b/clang/lib/AST/RecordLayoutBuilder.cpp index eb39d084244..4cd05b7f60f 100644 --- a/clang/lib/AST/RecordLayoutBuilder.cpp +++ b/clang/lib/AST/RecordLayoutBuilder.cpp @@ -2546,6 +2546,9 @@ ASTContext::getASTRecordLayout(const RecordDecl *D) const { } const CXXMethodDecl *ASTContext::getCurrentKeyFunction(const CXXRecordDecl *RD) { + if (!getTargetInfo().getCXXABI().hasKeyFunctions()) + return 0; + assert(RD->getDefinition() && "Cannot get key function for forward decl!"); RD = cast<CXXRecordDecl>(RD->getDefinition()); |