aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/builtins-1.c
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>2007-05-18 01:42:15 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>2007-05-18 01:42:15 +0000
commitbf460eec6facce43acc1bb89fd3fa3c271e3dd22 (patch)
tree9b7cc1714bd2bf985cd41854074a5e4fdf0d9365 /gcc/testsuite/gcc.dg/builtins-1.c
parentea91f95764aaa7a1ab8ceb78e81414dc28fb6b42 (diff)
downloadgcc-bf460eec6facce43acc1bb89fd3fa3c271e3dd22.zip
gcc-bf460eec6facce43acc1bb89fd3fa3c271e3dd22.tar.gz
gcc-bf460eec6facce43acc1bb89fd3fa3c271e3dd22.tar.bz2
builtins.c (CASE_MATHFN_REENT): New macro.
* builtins.c (CASE_MATHFN_REENT): New macro. (mathfn_built_in): Use it. * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R, BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R, BUILT_IN_LGAMMAL_R): New. * doc/extend.texi: Document new builtins. testsuite: * gcc.dg/builtins-1.c: Test reentrant gamma functions. From-SVN: r124821
Diffstat (limited to 'gcc/testsuite/gcc.dg/builtins-1.c')
-rw-r--r--gcc/testsuite/gcc.dg/builtins-1.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/builtins-1.c b/gcc/testsuite/gcc.dg/builtins-1.c
index 640576a5..573a879 100644
--- a/gcc/testsuite/gcc.dg/builtins-1.c
+++ b/gcc/testsuite/gcc.dg/builtins-1.c
@@ -44,6 +44,14 @@ double test_##FN(double x, TYPE y) { return __builtin_##FN(x, y); } \
float test_##FN##f(float x, TYPE y) { return __builtin_##FN##f(x, y); } \
long double test_##FN##l(long double x, TYPE y) { return __builtin_##FN##l(x, y); }
+/* Test FP functions taking two arguments, the second argument is of a
+ supplied type. The function is named reentrant style, meaning "_r"
+ appears after the possible f/l suffix. */
+#define FPTEST2ARG2_REENT(FN, TYPE) \
+double test_##FN##_r(double x, TYPE y) { return __builtin_##FN##_r(x, y); } \
+float test_##FN##f_r(float x, TYPE y) { return __builtin_##FN##f_r(x, y); } \
+long double test_##FN##l_r(long double x, TYPE y) { return __builtin_##FN##l_r(x, y); }
+
/* Test FP functions taking two arguments, the second argument is a
FP pointer. */
#define FPTEST2FPP2(FN) \
@@ -132,6 +140,7 @@ FPTEST2 (fmin)
FPTEST2 (fmod)
FPTEST2ARG2 (frexp, int *)
FPTEST1 (gamma)
+FPTEST2ARG2_REENT (gamma, int *) /* gamma_r */
FPTEST0 (huge_val)
FPTEST2 (hypot)
FPTEST1 (ilogb)
@@ -141,6 +150,7 @@ FPTEST1 (j1)
FPTEST2ARG1 (jn, int)
FPTEST2ARG2 (ldexp, int)
FPTEST1 (lgamma)
+FPTEST2ARG2_REENT (lgamma, int *) /* lgamma_r */
FPTEST1RET (llrint, long long)
FPTEST1RET (llround, long long)
FPTEST1 (log)