hubert.reinterpretcast added a comment.

In http://reviews.llvm.org/D15120#340515, @nemanjai wrote:

> If the reviewers don't mind, I would like to keep this patch with diagnostics 
> for interoperability between the two types for now. This is simply because 
> enabling such interoperability requires changes to some of the conversion 
> infrastructure (i.e. allowing FPTrunc/FPExt for types of the same width, 
> etc.). This is to prevent crashes on code such as:
>
>   __float128 foo(long double d) {
>     return d;
>   }
>   
>
> A test case like that will trip asserts when attempting to generate code. Of 
> course, this is easy to fix (3 minor changes in 2 files) but even if we emit 
> that IR, the back end will fail when trying to compile it.
>  What I meant to do with this patch is to just get the Clang support in and 
> emit diagnostics for things that the target isn't able to do yet. I will 
> follow this up with a patch that will:
>
> 1. Remove the diagnostics
> 2. Allow the conversions
> 3. Provide libcalls for the necessary operations (similarly to what GCC does)


This sounds good to me. @rjmccall @rsmith, are we good to move forward with 
this first patch?


================
Comment at: lib/Sema/SemaExpr.cpp:1156
@@ +1155,3 @@
+
+  QualType LHSElemType = dyn_cast<ComplexType>(LHSType) ?
+    cast<ComplexType>(LHSType)->getElementType() : LHSType;
----------------
The result of the `dyn_cast` can be saved instead of using `cast` after the 
`dyn_cast`.


Repository:
  rL LLVM

http://reviews.llvm.org/D15120



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to