]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/fortran/libgfortran.h
re PR fortran/33197 (Fortran 2008: math functions)
authorFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Mon, 3 Mar 2008 23:46:20 +0000 (23:46 +0000)
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Mon, 3 Mar 2008 23:46:20 +0000 (23:46 +0000)
commitf489fba12819abd5c1b8fe1a1bbff71fe67e81f0
treeafdccf794dd7e07d887dd608052f12f5ea83ec70
parenta1b25e49f867208ec896a7f273441d2972dd591c
re PR fortran/33197 (Fortran 2008: math functions)

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
48 files changed:
gcc/fortran/ChangeLog
gcc/fortran/check.c
gcc/fortran/gfortran.h
gcc/fortran/gfortran.texi
gcc/fortran/intrinsic.c
gcc/fortran/intrinsic.h
gcc/fortran/intrinsic.texi
gcc/fortran/invoke.texi
gcc/fortran/iresolve.c
gcc/fortran/lang-specs.h
gcc/fortran/lang.opt
gcc/fortran/libgfortran.h
gcc/fortran/mathbuiltins.def
gcc/fortran/options.c
gcc/fortran/parse.c
gcc/fortran/simplify.c
gcc/fortran/trans-intrinsic.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/bessel_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/besxy.f90
gcc/testsuite/gfortran.dg/bind_c_usage_9.f03
gcc/testsuite/gfortran.dg/contains_empty_1.f03 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/contains_empty_2.f03 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/derived_function_interface_1.f90
gcc/testsuite/gfortran.dg/dg.exp
gcc/testsuite/gfortran.dg/erfc_scaled_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/gamma_1.f90
gcc/testsuite/gfortran.dg/gamma_2.f90
gcc/testsuite/gfortran.dg/gamma_3.f90
gcc/testsuite/gfortran.dg/gamma_4.f90
gcc/testsuite/gfortran.dg/gomp/gomp.exp
gcc/testsuite/gfortran.dg/hypot_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/invalid_contains_1.f90
gcc/testsuite/gfortran.dg/invalid_contains_2.f90
gcc/testsuite/gfortran.dg/recursive_check_3.f90
gcc/testsuite/gfortran.dg/vect/vect.exp
gcc/testsuite/gfortran.fortran-torture/compile/compile.exp
gcc/testsuite/gfortran.fortran-torture/execute/execute.exp
libgfortran/ChangeLog
libgfortran/Makefile.am
libgfortran/Makefile.in
libgfortran/config.h.in
libgfortran/configure
libgfortran/gfortran.map
libgfortran/intrinsics/erfc_scaled.c [new file with mode: 0644]
libgfortran/intrinsics/erfc_scaled_inc.c [new file with mode: 0644]
libgomp/ChangeLog
libgomp/testsuite/libgomp.fortran/fortran.exp