1 // Copyright (C) 2016-2020 Free Software Foundation, Inc.
2 //
3 // This file is part of the GNU ISO C++ Library.  This library is free
4 // software; you can redistribute it and/or modify it under the
5 // terms of the GNU General Public License as published by the
6 // Free Software Foundation; either version 3, or (at your option)
7 // any later version.
8 
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 // GNU General Public License for more details.
13 
14 // You should have received a copy of the GNU General Public License along
15 // with this library; see the file COPYING3.  If not see
16 // <http://www.gnu.org/licenses/>.
17 
18 // { dg-do compile { target c++11 } }
19 
20 // PR libstdc++/60401
21 
22 #include <math.h>
23 
24 namespace test
25 {
26   template<typename T>
27     using F = T*;
28 
29   F<float(float)>abs = ::abs;
30 
31 #ifdef _GLIBCXX_USE_C99_MATH_TR1
32   F<float(float)>		acosh		= ::acosh;
33   F<float(float)>		asinh		= ::asinh;
34   F<float(float)>		atanh		= ::atanh;
35   F<float(float)>		cbrt		= ::cbrt;
36   F<float(float, float)>	copysign	= ::copysign;
37   F<float(float)>		erf		= ::erf;
38   F<float(float)>		erfc		= ::erfc;
39   F<float(float)>		exp2		= ::exp2;
40   F<float(float)>		expm1		= ::expm1;
41   F<float(float, float)>	fdim		= ::fdim;
42   F<float(float, float, float)>	fma		= ::fma;
43   F<float(float, float)>	fmax		= ::fmax;
44   F<float(float, float)>	fmin		= ::fmin;
45   F<float(float, float)>	hypot		= ::hypot;
46   F<int(float)>			ilogb		= ::ilogb;
47   F<float(float)>		lgamma		= ::lgamma;
48   F<long long(float)>		llrint		= ::llrint;
49   F<long long(float)>		llround		= ::llround;
50   F<float(float)>		log1p		= ::log1p;
51   F<float(float)>		log2		= ::log2;
52   F<float(float)>		logb		= ::logb;
53   F<long(float)>		lrint		= ::lrint;
54   F<long(float)>		lround		= ::lround;
55   F<float(float)>		nearbyint	= ::nearbyint;
56   F<float(float, float)>	nextafter	= ::nextafter;
57   F<float(float, long double)>	nexttoward	= ::nexttoward;
58   F<float(float, float)>	remainder	= ::remainder;
59   F<float(float, float, int*)>	remquo		= ::remquo;
60   F<float(float)>		rint		= ::rint;
61   F<float(float)>		round		= ::round;
62   F<float(float, long)>		scalbln		= ::scalbln;
63   F<float(float, int)>		scalbn		= ::scalbn;
64   F<float(float)>		tgamma		= ::tgamma;
65   F<float(float)>		trunc		= ::trunc;
66 #endif
67 }
68