Add C++11 <cmath> overloads to the global namespace
PR libstdc++/60401 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt, copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint, nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]: Add using declarations. * testsuite/26_numerics/headers/cmath/60401.cc: New. From-SVN: r232627
This commit is contained in:
parent
cd8e73dc67
commit
3f93466af4
3 changed files with 114 additions and 0 deletions
|
@ -1,5 +1,14 @@
|
|||
2016-01-20 Jonathan Wakely <jwakely@redhat.com>
|
||||
|
||||
PR libstdc++/60401
|
||||
* include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
|
||||
copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
|
||||
lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
|
||||
nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
|
||||
tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
|
||||
Add using declarations.
|
||||
* testsuite/26_numerics/headers/cmath/60401.cc: New.
|
||||
|
||||
PR libstdc++/69386
|
||||
* include/c_global/ccomplex: Ensure C++ language linkage.
|
||||
* include/c_global/cmath: Likewise.
|
||||
|
|
|
@ -74,5 +74,42 @@ using std::islessgreater;
|
|||
using std::isunordered;
|
||||
#endif
|
||||
|
||||
#if __cplusplus >= 201103L && defined(_GLIBCXX_USE_C99_MATH_TR1)
|
||||
using std::acosh;
|
||||
using std::asinh;
|
||||
using std::atanh;
|
||||
using std::cbrt;
|
||||
using std::copysign;
|
||||
using std::erf;
|
||||
using std::erfc;
|
||||
using std::exp2;
|
||||
using std::expm1;
|
||||
using std::fdim;
|
||||
using std::fma;
|
||||
using std::fmax;
|
||||
using std::fmin;
|
||||
using std::hypot;
|
||||
using std::ilogb;
|
||||
using std::lgamma;
|
||||
using std::llrint;
|
||||
using std::llround;
|
||||
using std::log1p;
|
||||
using std::log2;
|
||||
using std::logb;
|
||||
using std::lrint;
|
||||
using std::lround;
|
||||
using std::nearbyint;
|
||||
using std::nextafter;
|
||||
using std::nexttoward;
|
||||
using std::remainder;
|
||||
using std::remquo;
|
||||
using std::rint;
|
||||
using std::round;
|
||||
using std::scalbln;
|
||||
using std::scalbn;
|
||||
using std::tgamma;
|
||||
using std::trunc;
|
||||
#endif // C++11 && _GLIBCXX_USE_C99_MATH_TR1
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
68
libstdc++-v3/testsuite/26_numerics/headers/cmath/60401.cc
Normal file
68
libstdc++-v3/testsuite/26_numerics/headers/cmath/60401.cc
Normal file
|
@ -0,0 +1,68 @@
|
|||
// Copyright (C) 2016 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING3. If not see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
// { dg-options "-std=gnu++11" }
|
||||
// { dg-do compile }
|
||||
|
||||
// PR libstdc++/60401
|
||||
|
||||
#include <math.h>
|
||||
|
||||
namespace test
|
||||
{
|
||||
template<typename T>
|
||||
using F = T*;
|
||||
|
||||
F<float(float)>abs = ::abs;
|
||||
|
||||
#ifdef _GLIBCXX_USE_C99_MATH_TR1
|
||||
F<float(float)> acosh = ::acosh;
|
||||
F<float(float)> asinh = ::asinh;
|
||||
F<float(float)> atanh = ::atanh;
|
||||
F<float(float)> cbrt = ::cbrt;
|
||||
F<float(float, float)> copysign = ::copysign;
|
||||
F<float(float)> erf = ::erf;
|
||||
F<float(float)> erfc = ::erfc;
|
||||
F<float(float)> exp2 = ::exp2;
|
||||
F<float(float)> expm1 = ::expm1;
|
||||
F<float(float, float)> fdim = ::fdim;
|
||||
F<float(float, float, float)> fma = ::fma;
|
||||
F<float(float, float)> fmax = ::fmax;
|
||||
F<float(float, float)> fmin = ::fmin;
|
||||
F<float(float, float)> hypot = ::hypot;
|
||||
F<int(float)> ilogb = ::ilogb;
|
||||
F<float(float)> lgamma = ::lgamma;
|
||||
F<long long(float)> llrint = ::llrint;
|
||||
F<long long(float)> llround = ::llround;
|
||||
F<float(float)> log1p = ::log1p;
|
||||
F<float(float)> log2 = ::log2;
|
||||
F<float(float)> logb = ::logb;
|
||||
F<long(float)> lrint = ::lrint;
|
||||
F<long(float)> lround = ::lround;
|
||||
F<float(float)> nearbyint = ::nearbyint;
|
||||
F<float(float, float)> nextafter = ::nextafter;
|
||||
F<float(float, long double)> nexttoward = ::nexttoward;
|
||||
F<float(float, float)> remainder = ::remainder;
|
||||
F<float(float, float, int*)> remquo = ::remquo;
|
||||
F<float(float)> rint = ::rint;
|
||||
F<float(float)> round = ::round;
|
||||
F<float(float, long)> scalbln = ::scalbln;
|
||||
F<float(float, int)> scalbn = ::scalbn;
|
||||
F<float(float)> tgamma = ::tgamma;
|
||||
F<float(float)> trunc = ::trunc;
|
||||
#endif
|
||||
}
|
Loading…
Add table
Reference in a new issue