diff options
author | Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2008-02-27 14:32:02 +0000 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2008-02-27 14:32:02 +0000 |
commit | b5a4419cde676a67cd150feeef3babea43e5af8c (patch) | |
tree | 64de6d9997d0e3e22c4eeefedf20b872963e2089 /gcc/fortran/trans-decl.c | |
parent | 8bf6e2702881e7d34ee9b127f716d30fc6ee0adf (diff) | |
download | gcc-b5a4419cde676a67cd150feeef3babea43e5af8c.zip gcc-b5a4419cde676a67cd150feeef3babea43e5af8c.tar.gz gcc-b5a4419cde676a67cd150feeef3babea43e5af8c.tar.bz2 |
re PR fortran/33387 (Fortran front-end should translate intrinsics by calling C99 function instead of libgfortran functions)
PR fortran/33387
* trans.h: Remove prototypes for gfor_fndecl_math_exponent4,
gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
gfor_fndecl_math_exponent16.
* f95-lang.c (build_builtin_fntypes): Add new function types.
(gfc_init_builtin_functions): Add new builtins for nextafter,
frexp, ldexp, fabs, scalbn and inf.
* iresolve.c (gfc_resolve_rrspacing): Don't add hidden arguments.
(gfc_resolve_scale): Don't convert type of second argument.
(gfc_resolve_set_exponent): Likewise.
(gfc_resolve_size): Don't add hidden arguments.
* trans-decl.c: Remove gfor_fndecl_math_exponent4,
gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
gfor_fndecl_math_exponent16.
* trans-intrinsic.c (gfc_intrinsic_map): Remove intrinsics
for scalbn, fraction, nearest, rrspacing, set_exponent and
spacing.
(gfc_conv_intrinsic_exponent): Directly call frexp.
(gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_nearest,
gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
gfc_conv_intrinsic_scale, gfc_conv_intrinsic_set_exponent): New
functions.
(gfc_conv_intrinsic_function): Use the new functions above.
From-SVN: r132713
Diffstat (limited to 'gcc/fortran/trans-decl.c')
-rw-r--r-- | gcc/fortran/trans-decl.c | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 70609ac..bf07a88 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -102,10 +102,6 @@ gfc_powdecl_list gfor_fndecl_math_powi[4][3]; tree gfor_fndecl_math_ishftc4; tree gfor_fndecl_math_ishftc8; tree gfor_fndecl_math_ishftc16; -tree gfor_fndecl_math_exponent4; -tree gfor_fndecl_math_exponent8; -tree gfor_fndecl_math_exponent10; -tree gfor_fndecl_math_exponent16; /* String functions. */ @@ -2010,10 +2006,6 @@ gfc_build_intrinsic_function_decls (void) tree gfc_int8_type_node = gfc_get_int_type (8); tree gfc_int16_type_node = gfc_get_int_type (16); tree gfc_logical4_type_node = gfc_get_logical_type (4); - tree gfc_real4_type_node = gfc_get_real_type (4); - tree gfc_real8_type_node = gfc_get_real_type (8); - tree gfc_real10_type_node = gfc_get_real_type (10); - tree gfc_real16_type_node = gfc_get_real_type (16); /* String functions. */ gfor_fndecl_compare_string = @@ -2199,25 +2191,6 @@ gfc_build_intrinsic_function_decls (void) gfc_int4_type_node, gfc_int4_type_node); - gfor_fndecl_math_exponent4 = - gfc_build_library_function_decl (get_identifier (PREFIX("exponent_r4")), - gfc_int4_type_node, - 1, gfc_real4_type_node); - gfor_fndecl_math_exponent8 = - gfc_build_library_function_decl (get_identifier (PREFIX("exponent_r8")), - gfc_int4_type_node, - 1, gfc_real8_type_node); - if (gfc_real10_type_node) - gfor_fndecl_math_exponent10 = - gfc_build_library_function_decl (get_identifier (PREFIX("exponent_r10")), - gfc_int4_type_node, 1, - gfc_real10_type_node); - if (gfc_real16_type_node) - gfor_fndecl_math_exponent16 = - gfc_build_library_function_decl (get_identifier (PREFIX("exponent_r16")), - gfc_int4_type_node, 1, - gfc_real16_type_node); - /* BLAS functions. */ { tree pint = build_pointer_type (integer_type_node); |