[PATCH] D60220: [CUDA][Windows] Final fix for bug 38811 (Step 3 of 3)
Artem Belevich via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 28 10:18:00 PDT 2019
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
More information about the cfe-commits
mailing list