[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