r281544 - [CUDA] Make __clang_cuda_cmath.h compatible with libc++.

Justin Lebar via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 14 14:50:14 PDT 2016


Author: jlebar
Date: Wed Sep 14 16:50:14 2016
New Revision: 281544

URL: http://llvm.org/viewvc/llvm-project?rev=281544&view=rev
Log:
[CUDA] Make __clang_cuda_cmath.h compatible with libc++.

Summary:
We need to add a bunch more "using"s, which weren't necessary with
libstdc++.

Once this is in I can check in a test to the test-suite.

Reviewers: tra

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D24588

Modified:
    cfe/trunk/lib/Headers/__clang_cuda_cmath.h

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=281544&r1=281543&r2=281544&view=diff
==============================================================================
--- cfe/trunk/lib/Headers/__clang_cuda_cmath.h (original)
+++ cfe/trunk/lib/Headers/__clang_cuda_cmath.h Wed Sep 14 16:50:14 2016
@@ -327,6 +327,7 @@ using ::atan2;
 using ::atanh;
 using ::cbrt;
 using ::ceil;
+using ::copysign;
 using ::cos;
 using ::cosh;
 using ::erf;
@@ -335,9 +336,24 @@ using ::exp;
 using ::exp2;
 using ::expm1;
 using ::fabs;
+using ::fdim;
 using ::floor;
+using ::fma;
+using ::fmax;
+using ::fmin;
+using ::fmod;
+using ::fpclassify;
 using ::frexp;
+using ::hypot;
 using ::ilogb;
+using ::isfinite;
+using ::isgreater;
+using ::isgreaterequal;
+using ::isless;
+using ::islessequal;
+using ::islessgreater;
+using ::isnormal;
+using ::isunordered;
 using ::ldexp;
 using ::lgamma;
 using ::llrint;
@@ -349,17 +365,32 @@ using ::log2;
 using ::logb;
 using ::lrint;
 using ::lround;
+using ::nearbyint;
+using ::nextafter;
 using ::nexttoward;
 using ::pow;
+using ::remainder;
 using ::remquo;
+using ::rint;
+using ::round;
 using ::scalbln;
 using ::scalbn;
+using ::signbit;
 using ::sin;
 using ::sinh;
 using ::sqrt;
 using ::tan;
 using ::tanh;
 using ::tgamma;
+using ::trunc;
+
+// Well this is fun: We need to pull these symbols in for libc++, but we can't
+// pull them in with libstdc++, because its ::isinf and ::isnan are different
+// than its std::isinf and std::isnan.
+#ifndef __GLIBCXX__
+using ::isinf;
+using ::isnan;
+#endif
 
 // Finally, pull the "foobarf" functions that CUDA defines in its headers into
 // namespace std.




More information about the cfe-commits mailing list