diff options
author | Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2010-08-27 21:24:13 +0000 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2010-08-27 21:24:13 +0000 |
commit | a3c85b749940a80efed069253b08c0673c817278 (patch) | |
tree | 95a7a9868fbc4e7dc6996735a655e2232741c4a9 /gcc/fortran/mathbuiltins.def | |
parent | 6ba2db5e3323ac177a1d31cf8e562a1faba5a078 (diff) | |
download | gcc-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.def | 26 |
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) |