diff options
Diffstat (limited to 'clang/lib/Basic/TargetInfo.cpp')
| -rw-r--r-- | clang/lib/Basic/TargetInfo.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/Basic/TargetInfo.cpp b/clang/lib/Basic/TargetInfo.cpp index 7ee2706d3e1..e661c66ca03 100644 --- a/clang/lib/Basic/TargetInfo.cpp +++ b/clang/lib/Basic/TargetInfo.cpp @@ -82,8 +82,10 @@ TargetInfo::TargetInfo(const llvm::Triple &T) : TargetOpts(), Triple(T) { // Default to not using fp2ret for __Complex long double ComplexLongDoubleUsesFP2Ret = false; - // Default to using the Itanium ABI. - TheCXXABI.set(TargetCXXABI::GenericItanium); + // Set the C++ ABI based on the triple. + TheCXXABI.set(Triple.getOS() == llvm::Triple::Win32 + ? TargetCXXABI::Microsoft + : TargetCXXABI::GenericItanium); // Default to an empty address space map. AddrSpaceMap = &DefaultAddrSpaceMap; |

