aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/mathbuiltins.def
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>2010-08-27 21:24:13 +0000
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2010-08-27 21:24:13 +0000
commita3c85b749940a80efed069253b08c0673c817278 (patch)
tree95a7a9868fbc4e7dc6996735a655e2232741c4a9 /gcc/fortran/mathbuiltins.def
parent6ba2db5e3323ac177a1d31cf8e562a1faba5a078 (diff)
downloadgcc-a3c85b749940a80efed069253b08c0673c817278.zip
gcc-a3c85b749940a80efed069253b08c0673c817278.tar.gz
gcc-a3c85b749940a80efed069253b08c0673c817278.tar.bz2
re PR fortran/32049 (Support on x86_64 also kind=16)
PR fortran/32049 * gfortran.h (gfc_real_info): Add c_float128 field. * mathbuiltins.def: Indicate which builtins are const. * trans-types.h (float128_type_node, complex_float128_type_node, gfc_real16_is_float128): New variables. * trans-types.c (float128_type_node, complex_float128_type_node, gfc_real16_is_float128): New variables. (gfc_init_kinds): Allow TFmode. (gfc_build_real_type): Mark __float128 types as such. (gfc_init_types): Initialize float128_type_node and complex_float128_type_node * f95-lang.c (gfc_init_builtin_functions): Adjust for new argument of OTHER_BUILTIN macro. * trans-intrinsic.c (gfc_intrinsic_map_t): Likewise. (builtin_decl_for_precision): Special case for __float128. (builtin_decl_for_float_kind): Likewise. (define_quad_builtin): New function. (gfc_build_intrinsic_lib_fndecls): Create all __float128 library decls if necessary. Store them in the real16_decl and complex16_decl builtin map fields. (gfc_get_intrinsic_lib_fndecl): Handle q-suffixed __float128 library function names. * gfortran.dg/random_seed_1.f90: Adjust test. * gfortran.dg/float128_1.f90: New test. From-SVN: r163597
Diffstat (limited to 'gcc/fortran/mathbuiltins.def')
-rw-r--r--gcc/fortran/mathbuiltins.def26
1 files changed, 13 insertions, 13 deletions
diff --git a/gcc/fortran/mathbuiltins.def b/gcc/fortran/mathbuiltins.def
index 2d6e967..074390e9 100644
--- a/gcc/fortran/mathbuiltins.def
+++ b/gcc/fortran/mathbuiltins.def
@@ -52,19 +52,19 @@ DEFINE_MATH_BUILTIN (TGAMMA,"tgamma", 0)
DEFINE_MATH_BUILTIN (LGAMMA,"lgamma", 0)
DEFINE_MATH_BUILTIN (HYPOT, "hypot", 1)
-/* OTHER_BUILTIN (CODE, NAME, PROTOTYPE_TYPE)
+/* OTHER_BUILTIN (CODE, NAME, PROTOTYPE_TYPE, CONST)
For floating-point builtins that do not directly correspond to a
Fortran intrinsic. This is used to map the different variants (float,
double and long double) and to build the quad-precision decls. */
-OTHER_BUILTIN (CABS, "cabs", cabs)
-OTHER_BUILTIN (COPYSIGN, "copysign", 2)
-OTHER_BUILTIN (FABS, "fabs", 1)
-OTHER_BUILTIN (FMOD, "fmod", 2)
-OTHER_BUILTIN (FREXP, "frexp", frexp)
-OTHER_BUILTIN (HUGE_VAL, "huge_val", 0)
-OTHER_BUILTIN (LLROUND, "llround", llround)
-OTHER_BUILTIN (LROUND, "lround", lround)
-OTHER_BUILTIN (NEXTAFTER, "nextafter", 2)
-OTHER_BUILTIN (ROUND, "round", 1)
-OTHER_BUILTIN (SCALBN, "scalbn", scalbn)
-OTHER_BUILTIN (TRUNC, "trunc", 1)
+OTHER_BUILTIN (CABS, "cabs", cabs, true)
+OTHER_BUILTIN (COPYSIGN, "copysign", 2, true)
+OTHER_BUILTIN (FABS, "fabs", 1, true)
+OTHER_BUILTIN (FMOD, "fmod", 2, true)
+OTHER_BUILTIN (FREXP, "frexp", frexp, false)
+OTHER_BUILTIN (HUGE_VAL, "huge_val", 0, true)
+OTHER_BUILTIN (LLROUND, "llround", llround, true)
+OTHER_BUILTIN (LROUND, "lround", lround, true)
+OTHER_BUILTIN (NEXTAFTER, "nextafter", 2, true)
+OTHER_BUILTIN (ROUND, "round", 1, true)
+OTHER_BUILTIN (SCALBN, "scalbn", scalbn, true)
+OTHER_BUILTIN (TRUNC, "trunc", 1, true)