summaryrefslogtreecommitdiff
path: root/gcc/builtins.c
diff options
context:
space:
mode:
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>2007-05-18 01:42:15 +0000
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>2007-05-18 01:42:15 +0000
commitcd2656b0851f5ef4932b99fc5c42161e076a3bc3 (patch)
tree9b7cc1714bd2bf985cd41854074a5e4fdf0d9365 /gcc/builtins.c
parente5407ca691aa89becb921a356b6af0fbabc54534 (diff)
downloadgcc-cd2656b0851f5ef4932b99fc5c42161e076a3bc3.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124821 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r--gcc/builtins.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 96c1c032fa0..de62d15b3f4 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -1653,6 +1653,11 @@ expand_builtin_classify_type (tree exp)
case BUILT_IN_MATHFN: case BUILT_IN_MATHFN##F: case BUILT_IN_MATHFN##L: \
fcode = BUILT_IN_MATHFN; fcodef = BUILT_IN_MATHFN##F ; \
fcodel = BUILT_IN_MATHFN##L ; break;
+/* Similar to above, but appends _R after any F/L suffix. */
+#define CASE_MATHFN_REENT(BUILT_IN_MATHFN) \
+ case BUILT_IN_MATHFN##_R: case BUILT_IN_MATHFN##F_R: case BUILT_IN_MATHFN##L_R: \
+ fcode = BUILT_IN_MATHFN##_R; fcodef = BUILT_IN_MATHFN##F_R ; \
+ fcodel = BUILT_IN_MATHFN##L_R ; break;
/* Return mathematic function equivalent to FN but operating directly
on TYPE, if available. If we can't do the conversion, return zero. */
@@ -1692,6 +1697,7 @@ mathfn_built_in (tree type, enum built_in_function fn)
CASE_MATHFN (BUILT_IN_FMOD)
CASE_MATHFN (BUILT_IN_FREXP)
CASE_MATHFN (BUILT_IN_GAMMA)
+ CASE_MATHFN_REENT (BUILT_IN_GAMMA) /* GAMMA_R */
CASE_MATHFN (BUILT_IN_HUGE_VAL)
CASE_MATHFN (BUILT_IN_HYPOT)
CASE_MATHFN (BUILT_IN_ILOGB)
@@ -1704,6 +1710,7 @@ mathfn_built_in (tree type, enum built_in_function fn)
CASE_MATHFN (BUILT_IN_LDEXP)
CASE_MATHFN (BUILT_IN_LFLOOR)
CASE_MATHFN (BUILT_IN_LGAMMA)
+ CASE_MATHFN_REENT (BUILT_IN_LGAMMA) /* LGAMMA_R */
CASE_MATHFN (BUILT_IN_LLCEIL)
CASE_MATHFN (BUILT_IN_LLFLOOR)
CASE_MATHFN (BUILT_IN_LLRINT)