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