PR fortran/33197 gcc/fortran/ * intrinsic.c (add_functions): Modify intrinsics ACOSH, ASINH, ATANH, ERF, ERFC and GAMMA. Add intrinsics BESSEL_{J,Y}{0,1,N}, ERFC_SCALED, LOG_GAMMA and HYPOT. * intrinsic.h (gfc_check_hypot, gfc_simplify_hypot, gfc_resolve_hypot): New prototypes. * mathbuiltins.def: Add HYPOT builtin. Make complex versions of ACOSH, ASINH and ATANH available. * gfortran.h (GFC_ISYM_ERFC_SCALED, GFC_ISYM_HYPOT): New values. * lang.opt: Add -std=f2008 option. * libgfortran.h: Define GFC_STD_F2008. * lang-specs.h: Add .f08 and .F08 file suffixes. * iresolve.c (gfc_resolve_hypot): New function. * parse.c (parse_contained): Allow empty CONTAINS for Fortran 2008. * check.c (gfc_check_hypot): New function. * trans-intrinsic.c (gfc_intrinsic_map): Define ERFC_SCALE builtin. * options.c (set_default_std_flags): Allow Fortran 2008 by default. (form_from_filename): Add .f08 suffix. (gfc_handle_option): Handle -std=f2008 option. * simplify.c (gfc_simplify_hypot): New function. * gfortran.texi: Document Fortran 2008 status and file extensions. * intrinsic.texi: Document new BESSEL_{J,Y}{0,1,N} intrinsics, as well as HYPOT and ERFC_SCALED. Update documentation of ERF, ERFC, GAMMA, LGAMMA, ASINH, ACOSH and ATANH. * invoke.texi: Document the new -std=f2008 option. libgomp/ * testsuite/libgomp.fortran/fortran.exp: Add .f08 and .F08 file suffixes. gcc/testsuite/ * gfortran.dg/gomp/gomp.exp: Add .f08 and .F08 file suffixes. * gfortran.dg/dg.exp: Likewise. * gfortran.dg/vect/vect.exp: Likewise. * gfortran.fortran-torture/execute/execute.exp: Likewise. * gfortran.fortran-torture/compile/compile.exp: Likewise. * gfortran.dg/gamma_1.f90: Also check log_gamma. * gfortran.dg/invalid_contains_1.f90: Remove warning about empty CONTAINS. * gfortran.dg/gamma_2.f90: Add a few error messages. * gfortran.dg/invalid_contains_2.f90: Remove warning about empty CONTAINS. * gfortran.dg/gamma_3.f90: Adjust error message. * gfortran.dg/gamma_4.f90: Test for log_gamma instead of lgamma. * gfortran.dg/bind_c_usage_9.f03: Adjust error messages. * gfortran.dg/bessel_1.f90: New test. * gfortran.dg/recursive_check_3.f90: Remove warnings. * gfortran.dg/besxy.f90: Also check for new F2008 intrinsics. * gfortran.dg/derived_function_interface_1.f90: Remove warning. * gfortran.dg/contains_empty_1.f03: New test. * gfortran.dg/erfc_scaled_1.f90: New test. * gfortran.dg/hypot_1.f90: New test. * gfortran.dg/contains_empty_2.f03: New test. libgfortran/ * intrinsics/erfc_scaled_inc.c: New file. * intrinsics/erfc_scaled.c: New file. * gfortran.map (GFORTRAN_1.0): Add _gfortran_erfc_scaled_r*. * Makefile.am: Add intrinsics/erfc_scaled.c. * config.h.in: Regenerate. * configure: Regenerate. * Makefile.in: Regenerate. From-SVN: r132846
36 lines
1.4 KiB
Modula-2
36 lines
1.4 KiB
Modula-2
/* DEFINE_MATH_BUILTIN (CODE, NAME, ARGTYPE)
|
|
NAME The name of the builtin
|
|
SNAME The name of the builtin as a string
|
|
ARGTYPE The type of the arguments. See f95-lang.c
|
|
|
|
Use DEFINE_MATH_BUILTIN_C if the complex versions of the builtin are
|
|
also available. */
|
|
DEFINE_MATH_BUILTIN_C (ACOS, "acos", 0)
|
|
DEFINE_MATH_BUILTIN_C (ACOSH, "acosh", 0)
|
|
DEFINE_MATH_BUILTIN_C (ASIN, "asin", 0)
|
|
DEFINE_MATH_BUILTIN_C (ASINH, "asinh", 0)
|
|
DEFINE_MATH_BUILTIN_C (ATAN, "atan", 0)
|
|
DEFINE_MATH_BUILTIN_C (ATANH, "atanh", 0)
|
|
DEFINE_MATH_BUILTIN (ATAN2, "atan2", 1)
|
|
DEFINE_MATH_BUILTIN_C (COS, "cos", 0)
|
|
DEFINE_MATH_BUILTIN_C (COSH, "cosh", 0)
|
|
DEFINE_MATH_BUILTIN_C (EXP, "exp", 0)
|
|
DEFINE_MATH_BUILTIN_C (LOG, "log", 0)
|
|
DEFINE_MATH_BUILTIN_C (LOG10, "log10", 0)
|
|
DEFINE_MATH_BUILTIN_C (SIN, "sin", 0)
|
|
DEFINE_MATH_BUILTIN_C (SINH, "sinh", 0)
|
|
DEFINE_MATH_BUILTIN_C (SQRT, "sqrt", 0)
|
|
DEFINE_MATH_BUILTIN_C (TAN, "tan", 0)
|
|
DEFINE_MATH_BUILTIN_C (TANH, "tanh", 0)
|
|
DEFINE_MATH_BUILTIN (J0, "j0", 0)
|
|
DEFINE_MATH_BUILTIN (J1, "j1", 0)
|
|
DEFINE_MATH_BUILTIN (JN, "jn", 2)
|
|
DEFINE_MATH_BUILTIN (Y0, "y0", 0)
|
|
DEFINE_MATH_BUILTIN (Y1, "y1", 0)
|
|
DEFINE_MATH_BUILTIN (YN, "yn", 2)
|
|
DEFINE_MATH_BUILTIN (ERF, "erf", 0)
|
|
DEFINE_MATH_BUILTIN (ERFC, "erfc", 0)
|
|
DEFINE_MATH_BUILTIN (GAMMA, "tgamma", 0)
|
|
DEFINE_MATH_BUILTIN (LGAMMA,"lgamma", 0)
|
|
DEFINE_MATH_BUILTIN (HYPOT, "hypot", 1)
|