tra added a comment.

In D60220#1723458 <https://reviews.llvm.org/D60220#1723458>, @emankov wrote:

> In D60220#1723350 <https://reviews.llvm.org/D60220#1723350>, @6yearold wrote:
>
> > I'm seeing quite similar errors on FreeBSD with Clang 8 and 9:
> >  Any idea how to fix this?
>
>
> It looks like CUDA doesn't support `double` argument for device function 
> __isnan on FreeBSD.


It's actually the opposite -- FreeBSD does not provide *host*-side 
`__isnan(double)` -- the error complains that it's the host code that tried to 
use `__isnan` and failed when overload resolution produced a device variant.

FreeBSD does have host-side implementation of isnan, only it's apparently 
called `__inline_isnan()` 
https://github.com/freebsd/freebsd/blob/master/lib/msun/src/math.h#L197
I think the right thing to do here would probably be to define a wrapper 
__isnan(double) which would call it.

> 
> 
> 1. I'd look at LLVM trunk (10.0.0svn).
> 2. If the issue were not eliminated in the trunk, I'd make a change for 
> FreeBSD similar to https://reviews.llvm.org/rL358654 to provide declarations 
> for that function, allowing math_functions.hpp to compile, but with 
> preventing from any use of it on the device side.




Repository:
  rC Clang

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

https://reviews.llvm.org/D60220



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

Reply via email to