summaryrefslogtreecommitdiffstats
path: root/clang/lib/Headers/__clang_cuda_device_functions.h
diff options
context:
space:
mode:
authorEvgeny Mankov <evgeny.mankov@gmail.com>2019-03-15 12:05:36 +0000
committerEvgeny Mankov <evgeny.mankov@gmail.com>2019-03-15 12:05:36 +0000
commit04188fc0c6e61b62f2c8efde620d637bd7caf926 (patch)
tree4142efa302f7939c5561761fcb6d9607b61b55ac /clang/lib/Headers/__clang_cuda_device_functions.h
parent5f5a74582f8abb2935f9a6f6df3a55dc825f5412 (diff)
downloadbcm5719-llvm-04188fc0c6e61b62f2c8efde620d637bd7caf926.tar.gz
bcm5719-llvm-04188fc0c6e61b62f2c8efde620d637bd7caf926.zip
[CUDA][Windows] Partial fix for bug #38811 (Step 1 of 3)
Partial fix for the clang Bug https://bugs.llvm.org/show_bug.cgi?id=38811 "Clang fails to compile with CUDA-9.x on Windows". Adding defined(_WIN64) check along with existing #if defined(__LP64__) eliminates the below clang (64-bit) compilation error on Windows. C:/GIT/LLVM/trunk/llvm-64-release-vs2017/dist/lib/clang/9.0.0\include\__clang_cuda_device_functions.h(1609,45): error GEF7559A7: no matching function for call to 'roundf' __DEVICE__ long lroundf(float __a) { return roundf(__a); } Reviewed by: Artem Belevich Differential Revision: http://reviews.llvm.org/D59361 llvm-svn: 356255
Diffstat (limited to 'clang/lib/Headers/__clang_cuda_device_functions.h')
-rw-r--r--clang/lib/Headers/__clang_cuda_device_functions.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/Headers/__clang_cuda_device_functions.h b/clang/lib/Headers/__clang_cuda_device_functions.h
index 67bbc68b163..28b214c147b 100644
--- a/clang/lib/Headers/__clang_cuda_device_functions.h
+++ b/clang/lib/Headers/__clang_cuda_device_functions.h
@@ -1563,7 +1563,7 @@ __DEVICE__ double j1(double __a) { return __nv_j1(__a); }
__DEVICE__ float j1f(float __a) { return __nv_j1f(__a); }
__DEVICE__ double jn(int __n, double __a) { return __nv_jn(__n, __a); }
__DEVICE__ float jnf(int __n, float __a) { return __nv_jnf(__n, __a); }
-#if defined(__LP64__)
+#if defined(__LP64__) || defined(_WIN64)
__DEVICE__ long labs(long __a) { return llabs(__a); };
#else
__DEVICE__ long labs(long __a) { return __nv_abs(__a); };
@@ -1597,7 +1597,7 @@ __DEVICE__ float logbf(float __a) { return __nv_logbf(__a); }
__DEVICE__ float logf(float __a) {
return __FAST_OR_SLOW(__nv_fast_logf, __nv_logf)(__a);
}
-#if defined(__LP64__)
+#if defined(__LP64__) || defined(_WIN64)
__DEVICE__ long lrint(double __a) { return llrint(__a); }
__DEVICE__ long lrintf(float __a) { return __float2ll_rn(__a); }
__DEVICE__ long lround(double __a) { return llround(__a); }
OpenPOWER on IntegriCloud