summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/RecordLayoutBuilder.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2013-10-11 21:10:11 +0000
committerReid Kleckner <reid@kleckner.net>2013-10-11 21:10:11 +0000
commit4c42732cf869d167e48a15afe280cb847984e7a5 (patch)
tree283131e677dbf2c9f66f5bb8e4d5d5cccea735c0 /clang/lib/AST/RecordLayoutBuilder.cpp
parent441387832e377f5a2139a91fb92bb112f74104de (diff)
downloadbcm5719-llvm-4c42732cf869d167e48a15afe280cb847984e7a5.tar.gz
bcm5719-llvm-4c42732cf869d167e48a15afe280cb847984e7a5.zip
Only use the MS record layout when using the MS C++ ABI
We're not ready to use it everywhere we use a win32 triple yet. llvm-svn: 192502
Diffstat (limited to 'clang/lib/AST/RecordLayoutBuilder.cpp')
-rw-r--r--clang/lib/AST/RecordLayoutBuilder.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/clang/lib/AST/RecordLayoutBuilder.cpp b/clang/lib/AST/RecordLayoutBuilder.cpp
index 575ef316043..10c7b5d88fb 100644
--- a/clang/lib/AST/RecordLayoutBuilder.cpp
+++ b/clang/lib/AST/RecordLayoutBuilder.cpp
@@ -2345,11 +2345,11 @@ static bool mustSkipTailPadding(TargetCXXABI ABI, const CXXRecordDecl *RD) {
}
static bool isMsLayout(const RecordDecl* D) {
- return (D->getASTContext().getTargetInfo().getCXXABI().isMicrosoft() ||
- D->getASTContext().getTargetInfo().getTriple().getOS() ==
- llvm::Triple::Win32) &&
- D->getASTContext().getTargetInfo().getPointerWidth(0) == 32;
- // FIXME: we intend to enable 64 bit mode once it's been verified.
+ // FIXME: Use MS record layout for x64 code and remove MS C++ support from the
+ // Itanium record layout code.
+ return D->getASTContext().getTargetInfo().getCXXABI().isMicrosoft() &&
+ D->getASTContext().getTargetInfo().getTriple().getArch() ==
+ llvm::Triple::x86;
}
// This section contains an implementation of struct layout that is, up to the
OpenPOWER on IntegriCloud