Provide std::abs(<floating-point>) in <cmath> on Solaris.
authorEric Fiselier <eric@efcs.ca>
Wed, 18 Mar 2015 15:24:18 +0000 (15:24 +0000)
committerEric Fiselier <eric@efcs.ca>
Wed, 18 Mar 2015 15:24:18 +0000 (15:24 +0000)
1) <cstdlib> header should define std::abs([int|long|long long])
functions. They use "using ::abs" to import these functions (which are
declared in <stdlib.h>) into std namespace.
2) <cmath> header should define std::abs([float|double|long double])
function. If we try define new functions in std namespace, then it
will cause compile error in <cstdlib> because "using ::abs" will try
import not only [int|long|long long] functions, but also
[float|double|long double] which are defined in <math.h> header on
solaris.

Patch by C Bergstrom.

llvm-svn: 232641

libcxx/include/cmath

index b340b4d..5f9aaed 100644 (file)
@@ -654,6 +654,10 @@ using ::double_t;
 
 // abs
 
+#if defined(__sun__)
+using ::abs;
+#endif
+
 #if !defined(_AIX) && !defined(__sun__)
 inline _LIBCPP_INLINE_VISIBILITY
 float