diff options
author | Martell Malone <martellmalone@gmail.com> | 2015-08-14 19:05:56 +0000 |
---|---|---|
committer | Martell Malone <martellmalone@gmail.com> | 2015-08-14 19:05:56 +0000 |
commit | b8a3fe7a53e3226888be41c7a1dfa02cfe877edf (patch) | |
tree | 25abb749343c0984106f25bd8356e4cb0924a099 /clang/lib/Basic/Targets.cpp | |
parent | 397a17bfeb9f60a94c1053e70ecd75b45e7599d5 (diff) | |
download | bcm5719-llvm-b8a3fe7a53e3226888be41c7a1dfa02cfe877edf.tar.gz bcm5719-llvm-b8a3fe7a53e3226888be41c7a1dfa02cfe877edf.zip |
WindowsX86: long double is x87DoubleExtended on mingw
Summary:
long double on x86 mingw is 80bits and is aligned to 16bytes
Fixes:
https://llvm.org/bugs/show_bug.cgi?id=24398
Reviewers: rnk
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D12037
llvm-svn: 245084
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 8d1966e8f3d..e413f7eb464 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -3784,7 +3784,10 @@ namespace { class MinGWX86_32TargetInfo : public WindowsX86_32TargetInfo { public: MinGWX86_32TargetInfo(const llvm::Triple &Triple) - : WindowsX86_32TargetInfo(Triple) {} + : WindowsX86_32TargetInfo(Triple) { + LongDoubleWidth = LongDoubleAlign = 128; + LongDoubleFormat = &llvm::APFloat::x87DoubleExtended; + } void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override { WindowsX86_32TargetInfo::getTargetDefines(Opts, Builder); @@ -4014,7 +4017,10 @@ public: class MinGWX86_64TargetInfo : public WindowsX86_64TargetInfo { public: MinGWX86_64TargetInfo(const llvm::Triple &Triple) - : WindowsX86_64TargetInfo(Triple) {} + : WindowsX86_64TargetInfo(Triple) { + LongDoubleWidth = LongDoubleAlign = 128; + LongDoubleFormat = &llvm::APFloat::x87DoubleExtended; + } void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override { WindowsX86_64TargetInfo::getTargetDefines(Opts, Builder); |