Author: gbercea Date: Wed May 15 13:28:23 2019 New Revision: 360809 URL: http://llvm.org/viewvc/llvm-project?rev=360809&view=rev Log: [OpenMP][Bugfix] Move double and float versions of abs under c++ macro
Summary: This is a fix for the reported bug: [[ https://bugs.llvm.org/show_bug.cgi?id=41861 | 41861 ]] abs functions need to be moved under the c++ macro to avoid conflicts with included headers. Reviewers: tra, jdoerfert, hfinkel, ABataev, caomhin Reviewed By: jdoerfert Subscribers: guansong, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D61959 Modified: cfe/trunk/lib/Headers/__clang_cuda_cmath.h cfe/trunk/lib/Headers/__clang_cuda_math_forward_declares.h cfe/trunk/test/Headers/Inputs/include/cstdlib cfe/trunk/test/Headers/nvptx_device_cmath_functions.c cfe/trunk/test/Headers/nvptx_device_cmath_functions.cpp cfe/trunk/test/Headers/nvptx_device_cmath_functions_cxx17.cpp cfe/trunk/test/Headers/nvptx_device_math_functions.c cfe/trunk/test/Headers/nvptx_device_math_functions.cpp cfe/trunk/test/Headers/nvptx_device_math_functions_cxx17.cpp Modified: cfe/trunk/lib/Headers/__clang_cuda_cmath.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/__clang_cuda_cmath.h?rev=360809&r1=360808&r2=360809&view=diff ============================================================================== --- cfe/trunk/lib/Headers/__clang_cuda_cmath.h (original) +++ cfe/trunk/lib/Headers/__clang_cuda_cmath.h Wed May 15 13:28:23 2019 @@ -48,9 +48,9 @@ #if !(defined(_OPENMP) && defined(__cplusplus)) __DEVICE__ long long abs(long long __n) { return ::llabs(__n); } __DEVICE__ long abs(long __n) { return ::labs(__n); } -#endif __DEVICE__ float abs(float __x) { return ::fabsf(__x); } __DEVICE__ double abs(double __x) { return ::fabs(__x); } +#endif __DEVICE__ float acos(float __x) { return ::acosf(__x); } __DEVICE__ float asin(float __x) { return ::asinf(__x); } __DEVICE__ float atan(float __x) { return ::atanf(__x); } Modified: cfe/trunk/lib/Headers/__clang_cuda_math_forward_declares.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/__clang_cuda_math_forward_declares.h?rev=360809&r1=360808&r2=360809&view=diff ============================================================================== --- cfe/trunk/lib/Headers/__clang_cuda_math_forward_declares.h (original) +++ cfe/trunk/lib/Headers/__clang_cuda_math_forward_declares.h Wed May 15 13:28:23 2019 @@ -39,10 +39,10 @@ #if !(defined(_OPENMP) && defined(__cplusplus)) __DEVICE__ long abs(long); __DEVICE__ long long abs(long long); -#endif -__DEVICE__ int abs(int) __NOEXCEPT; __DEVICE__ double abs(double); __DEVICE__ float abs(float); +#endif +__DEVICE__ int abs(int) __NOEXCEPT; __DEVICE__ double acos(double); __DEVICE__ float acos(float); __DEVICE__ double acosh(double); Modified: cfe/trunk/test/Headers/Inputs/include/cstdlib URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/Inputs/include/cstdlib?rev=360809&r1=360808&r2=360809&view=diff ============================================================================== --- cfe/trunk/test/Headers/Inputs/include/cstdlib (original) +++ cfe/trunk/test/Headers/Inputs/include/cstdlib Wed May 15 13:28:23 2019 @@ -3,9 +3,11 @@ #if __cplusplus >= 201703L extern int abs (int __x) throw() __attribute__ ((__const__)) ; extern long int labs (long int __x) throw() __attribute__ ((__const__)) ; +extern float fabs (float __x) throw() __attribute__ ((__const__)) ; #else extern int abs (int __x) __attribute__ ((__const__)) ; extern long int labs (long int __x) __attribute__ ((__const__)) ; +extern float fabs (float __x) __attribute__ ((__const__)) ; #endif namespace std Modified: cfe/trunk/test/Headers/nvptx_device_cmath_functions.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/nvptx_device_cmath_functions.c?rev=360809&r1=360808&r2=360809&view=diff ============================================================================== --- cfe/trunk/test/Headers/nvptx_device_cmath_functions.c (original) +++ cfe/trunk/test/Headers/nvptx_device_cmath_functions.c Wed May 15 13:28:23 2019 @@ -17,5 +17,9 @@ void test_sqrt(double a1) { double l2 = pow(a1, a1); // CHECK-YES: call double @__nv_modf(double double l3 = modf(a1 + 3.5, &a1); + // CHECK-YES: call double @__nv_fabs(double + double l4 = fabs(a1); + // CHECK-YES: call i32 @__nv_abs(i32 + double l5 = abs((int)a1); } } Modified: cfe/trunk/test/Headers/nvptx_device_cmath_functions.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/nvptx_device_cmath_functions.cpp?rev=360809&r1=360808&r2=360809&view=diff ============================================================================== --- cfe/trunk/test/Headers/nvptx_device_cmath_functions.cpp (original) +++ cfe/trunk/test/Headers/nvptx_device_cmath_functions.cpp Wed May 15 13:28:23 2019 @@ -18,5 +18,9 @@ void test_sqrt(double a1) { double l2 = pow(a1, a1); // CHECK-YES: call double @__nv_modf(double double l3 = modf(a1 + 3.5, &a1); + // CHECK-YES: call double @__nv_fabs(double + double l4 = fabs(a1); + // CHECK-YES: call i32 @__nv_abs(i32 + double l5 = abs((int)a1); } } Modified: cfe/trunk/test/Headers/nvptx_device_cmath_functions_cxx17.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/nvptx_device_cmath_functions_cxx17.cpp?rev=360809&r1=360808&r2=360809&view=diff ============================================================================== --- cfe/trunk/test/Headers/nvptx_device_cmath_functions_cxx17.cpp (original) +++ cfe/trunk/test/Headers/nvptx_device_cmath_functions_cxx17.cpp Wed May 15 13:28:23 2019 @@ -18,5 +18,9 @@ void test_sqrt(double a1) { double l2 = pow(a1, a1); // CHECK-YES: call double @__nv_modf(double double l3 = modf(a1 + 3.5, &a1); + // CHECK-YES: call double @__nv_fabs(double + double l4 = fabs(a1); + // CHECK-YES: call i32 @__nv_abs(i32 + double l5 = abs((int)a1); } } Modified: cfe/trunk/test/Headers/nvptx_device_math_functions.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/nvptx_device_math_functions.c?rev=360809&r1=360808&r2=360809&view=diff ============================================================================== --- cfe/trunk/test/Headers/nvptx_device_math_functions.c (original) +++ cfe/trunk/test/Headers/nvptx_device_math_functions.c Wed May 15 13:28:23 2019 @@ -17,5 +17,9 @@ void test_sqrt(double a1) { double l2 = pow(a1, a1); // CHECK-YES: call double @__nv_modf(double double l3 = modf(a1 + 3.5, &a1); + // CHECK-YES: call double @__nv_fabs(double + double l4 = fabs(a1); + // CHECK-YES: call i32 @__nv_abs(i32 + double l5 = abs((int)a1); } } Modified: cfe/trunk/test/Headers/nvptx_device_math_functions.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/nvptx_device_math_functions.cpp?rev=360809&r1=360808&r2=360809&view=diff ============================================================================== --- cfe/trunk/test/Headers/nvptx_device_math_functions.cpp (original) +++ cfe/trunk/test/Headers/nvptx_device_math_functions.cpp Wed May 15 13:28:23 2019 @@ -18,5 +18,9 @@ void test_sqrt(double a1) { double l2 = pow(a1, a1); // CHECK-YES: call double @__nv_modf(double double l3 = modf(a1 + 3.5, &a1); + // CHECK-YES: call double @__nv_fabs(double + double l4 = fabs(a1); + // CHECK-YES: call i32 @__nv_abs(i32 + double l5 = abs((int)a1); } } Modified: cfe/trunk/test/Headers/nvptx_device_math_functions_cxx17.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/nvptx_device_math_functions_cxx17.cpp?rev=360809&r1=360808&r2=360809&view=diff ============================================================================== --- cfe/trunk/test/Headers/nvptx_device_math_functions_cxx17.cpp (original) +++ cfe/trunk/test/Headers/nvptx_device_math_functions_cxx17.cpp Wed May 15 13:28:23 2019 @@ -18,5 +18,9 @@ void test_sqrt(double a1) { double l2 = pow(a1, a1); // CHECK-YES: call double @__nv_modf(double double l3 = modf(a1 + 3.5, &a1); + // CHECK-YES: call double @__nv_fabs(double + double l4 = fabs(a1); + // CHECK-YES: call i32 @__nv_abs(i32 + double l5 = abs((int)a1); } } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits