[PATCH] D109751: [Clang] Support conversion between PPC double-double and IEEE float128

Hubert Tong via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Dec 3 19:51:07 PST 2021


hubert.reinterpretcast added inline comments.


================
Comment at: clang/lib/Sema/SemaExpr.cpp:1540
   // Diagnose attempts to convert between __ibm128, __float128 and long double
-  // where such conversions currently can't be handled.
+  // in arithmetic or comparison.
   if (unsupportedTypeConversion(*this, LHSType, RHSType))
----------------
The ternary operator seems to be something other than (straightforward) "arithmetic or comparison".


================
Comment at: clang/test/CodeGen/ibm128-cast.c:46
   !b ? w : l; // expected-error {{incompatible operand types ('__ibm128' and 'long double')}}
 }
 #elif __LONG_DOUBLE_IBM128__
----------------
Should have compound assignment tests for C as well.


================
Comment at: clang/test/CodeGen/ibm128-cast.c:67
+  !b ? w : l; // expected-no-error
 }
 #endif
----------------
Should have compound assignment tests for C as well.


================
Comment at: clang/test/Sema/float128-ld-incompatibility.cpp:13
+long double ld{qf()}; // expected-error {{non-constant-expression cannot be narrowed from type '__float128' to 'long double' in initializer list}} expected-note {{insert an explicit cast to silence this issue}}
+__float128 q{ldf()}; // expected-no-error
 
----------------
Should also test `__ibm128` cases.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D109751/new/

https://reviews.llvm.org/D109751



More information about the cfe-commits mailing list