diff options
author | Francois-Xavier Coudert <coudert@clipper.ens.fr> | 2008-02-23 19:42:04 +0100 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2008-02-23 18:42:04 +0000 |
commit | fb2202350d6e67d9fef57a392532938270714364 (patch) | |
tree | cd6f69f8cb255a89ac25d6d47a969d01dbc4675e /gcc/fortran/f95-lang.c | |
parent | f79db4f66eba251456c2a9c2fc9d0daef1af9e90 (diff) | |
download | gcc-fb2202350d6e67d9fef57a392532938270714364.zip gcc-fb2202350d6e67d9fef57a392532938270714364.tar.gz gcc-fb2202350d6e67d9fef57a392532938270714364.tar.bz2 |
re PR target/25477 (builtin functions should use $LDBL128 suffix on darwin when appropriate)
PR target/25477
* config/darwin-protos.h: Add darwin_patch_builtins prototype.
* config/darwin-ppc-ldouble-patch.def: New file.
* config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
* config/rs6000/rs6000.c (rs6000_init_builtins): Call
SUBTARGET_INIT_BUILTINS if defined.
* config/darwin.c (darwin_patch_builtin,
darwin_patch_builtins): New functions.
* trans-expr.c (gfc_conv_power_op): Use BUILT_IN_CPOW{F,,L}.
* f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_CPOW{F,,L}.
* trans.h (gfor_fndecl_math_cpow, gfor_fndecl_math_cpowf,
gfor_fndecl_math_cpowl10, gfor_fndecl_math_cpowl16): Remove.
* trans-decl.c: Likewise.
* gfortran.dg/large_real_kind_2.F90: Split testing of ERF and
ERFC into gfortran.dg/large_real_kind_3.F90.
* gfortran.dg/large_real_kind_3.F90: New test.
From-SVN: r132576
Diffstat (limited to 'gcc/fortran/f95-lang.c')
-rw-r--r-- | gcc/fortran/f95-lang.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/fortran/f95-lang.c b/gcc/fortran/f95-lang.c index dcc64b9..3056fdb 100644 --- a/gcc/fortran/f95-lang.c +++ b/gcc/fortran/f95-lang.c @@ -942,6 +942,12 @@ gfc_init_builtin_functions (void) BUILT_IN_POW, "pow", true); gfc_define_builtin ("__builtin_powf", mfunc_float[1], BUILT_IN_POWF, "powf", true); + gfc_define_builtin ("__builtin_cpowl", mfunc_clongdouble[1], + BUILT_IN_CPOWL, "cpowl", true); + gfc_define_builtin ("__builtin_cpow", mfunc_cdouble[1], + BUILT_IN_CPOW, "cpow", true); + gfc_define_builtin ("__builtin_cpowf", mfunc_cfloat[1], + BUILT_IN_CPOWF, "cpowf", true); gfc_define_builtin ("__builtin_powil", mfunc_longdouble[2], BUILT_IN_POWIL, "powil", true); gfc_define_builtin ("__builtin_powi", mfunc_double[2], |