diff options
Diffstat (limited to 'lib/Basic/Targets.cpp')
| -rw-r--r-- | lib/Basic/Targets.cpp | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index e4db004b4948a..9e44f7d9be631 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -3968,7 +3968,13 @@ public:  class MinGWX86_64TargetInfo : public WindowsX86_64TargetInfo {  public:    MinGWX86_64TargetInfo(const llvm::Triple &Triple) -      : WindowsX86_64TargetInfo(Triple) {} +      : WindowsX86_64TargetInfo(Triple) { +    // Mingw64 rounds long double size and alignment up to 16 bytes, but sticks +    // with x86 FP ops. Weird. +    LongDoubleWidth = LongDoubleAlign = 128; +    LongDoubleFormat = &llvm::APFloat::x87DoubleExtended; +  } +    void getTargetDefines(const LangOptions &Opts,                          MacroBuilder &Builder) const override {      WindowsX86_64TargetInfo::getTargetDefines(Opts, Builder);  | 
