Thanks Reid for looking at this today On Fri, May 26, 2017 at 6:38 PM, Reid Kleckner via cfe-commits < cfe-commits@lists.llvm.org> wrote:
> Author: rnk > Date: Fri May 26 12:38:15 2017 > New Revision: 304012 > > URL: http://llvm.org/viewvc/llvm-project?rev=304012&view=rev > Log: > Enable __float128 for mingw for GCC compatibility and define > __SIZEOF_FLOAT128__ on x86 > > GCC defines __FLOAT128__ on Power and __SIZEOF_FLOAT128__ on x86. We're > just following the inconsistency for now so users have some way to test. > > Effectively merges this patch as requested by Martell Malone: > https://github.com/Alexpux/MINGW-packages/blob/master/ > mingw-w64-clang/0107-enable-__float128-for-X86-MinGW.patch > > Modified: > cfe/trunk/lib/Basic/Targets.cpp > cfe/trunk/lib/Frontend/InitPreprocessor.cpp > cfe/trunk/test/Sema/128bitfloat.cpp > > Modified: cfe/trunk/lib/Basic/Targets.cpp > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/ > Targets.cpp?rev=304012&r1=304011&r2=304012&view=diff > ============================================================ > ================== > --- cfe/trunk/lib/Basic/Targets.cpp (original) > +++ cfe/trunk/lib/Basic/Targets.cpp Fri May 26 12:38:15 2017 > @@ -4644,7 +4644,9 @@ static void addMinGWDefines(const LangOp > class MinGWX86_32TargetInfo : public WindowsX86_32TargetInfo { > public: > MinGWX86_32TargetInfo(const llvm::Triple &Triple, const TargetOptions > &Opts) > - : WindowsX86_32TargetInfo(Triple, Opts) {} > + : WindowsX86_32TargetInfo(Triple, Opts) { > + HasFloat128 = true; > + } > void getTargetDefines(const LangOptions &Opts, > MacroBuilder &Builder) const override { > WindowsX86_32TargetInfo::getTargetDefines(Opts, Builder); > @@ -4936,6 +4938,7 @@ public: > // with x86 FP ops. Weird. > LongDoubleWidth = LongDoubleAlign = 128; > LongDoubleFormat = &llvm::APFloat::x87DoubleExtended(); > + HasFloat128 = true; > } > > void getTargetDefines(const LangOptions &Opts, > > Modified: cfe/trunk/lib/Frontend/InitPreprocessor.cpp > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ > Frontend/InitPreprocessor.cpp?rev=304012&r1=304011&r2=304012&view=diff > ============================================================ > ================== > --- cfe/trunk/lib/Frontend/InitPreprocessor.cpp (original) > +++ cfe/trunk/lib/Frontend/InitPreprocessor.cpp Fri May 26 12:38:15 2017 > @@ -750,6 +750,8 @@ static void InitializePredefinedMacros(c > TI.getTypeWidth(TI.getWIntType()), TI, Builder); > if (TI.hasInt128Type()) > DefineTypeSizeof("__SIZEOF_INT128__", 128, TI, Builder); > + if (TI.hasFloat128Type()) > + DefineTypeSizeof("__SIZEOF_FLOAT128__", 128, TI, Builder); > > DefineType("__INTMAX_TYPE__", TI.getIntMaxType(), Builder); > DefineFmt("__INTMAX", TI.getIntMaxType(), TI, Builder); > > Modified: cfe/trunk/test/Sema/128bitfloat.cpp > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/ > 128bitfloat.cpp?rev=304012&r1=304011&r2=304012&view=diff > ============================================================ > ================== > --- cfe/trunk/test/Sema/128bitfloat.cpp (original) > +++ cfe/trunk/test/Sema/128bitfloat.cpp Fri May 26 12:38:15 2017 > @@ -1,7 +1,11 @@ > -// RUN: %clang_cc1 -fsyntax-only -verify -std=gnu++11 %s > -// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s > +// RUN: %clang_cc1 -verify -std=gnu++11 %s > +// RUN: %clang_cc1 -verify -std=c++11 %s > +// RUN: %clang_cc1 -triple powerpc64-linux -verify -std=c++11 %s > +// RUN: %clang_cc1 -triple i686-windows-gnu -verify -std=c++11 %s > +// RUN: %clang_cc1 -triple x86_64-windows-gnu -verify -std=c++11 %s > +// RUN: %clang_cc1 -triple x86_64-windows-msvc -verify -std=c++11 %s > > -#ifdef __FLOAT128__ > +#if defined(__FLOAT128__) || defined(__SIZEOF_FLOAT128__) > __float128 f; > template<typename> struct __is_floating_point_helper {}; > template<> struct __is_floating_point_helper<__float128> {}; > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits