summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
authorMartell Malone <martellmalone@gmail.com>2015-08-14 19:05:56 +0000
committerMartell Malone <martellmalone@gmail.com>2015-08-14 19:05:56 +0000
commitb8a3fe7a53e3226888be41c7a1dfa02cfe877edf (patch)
tree25abb749343c0984106f25bd8356e4cb0924a099 /clang/lib/Basic/Targets.cpp
parent397a17bfeb9f60a94c1053e70ecd75b45e7599d5 (diff)
downloadbcm5719-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.cpp10
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);
OpenPOWER on IntegriCloud