OSDN Git Service

gcc/fortran/
authortobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 May 2005 22:06:55 +0000 (22:06 +0000)
committertobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 May 2005 22:06:55 +0000 (22:06 +0000)
commitbdaed7d2d9578b85a8480067e9b6ea59fd39bab3
tree6cff06cdd4e25eaf7ccb4278260ebfd2d406f4f9
parente863b008debe0a16ed163d43d54b5948fceb5d3b
gcc/fortran/
PR fortran/20178
* gfortran.h (gfc_option): Add flag_f2c.
* invoke.texi: Document '-ff2c' command line option.  Adapt
documentation for '-fno-second-underscore' and '-fno-underscoring'.
* lang.opt (ff2c): New entry.
* options.c (gfc-init_options): Set default calling convention
to -fno-f2c.  Mark -fsecond-underscore unset.
(gfc_post_options): Set -fsecond-underscore if not explicitly set
by user.
(handle_options): Set gfc_option.flag_f2c according to requested
calling convention.
* trans-decl.c (gfc_get_extern_function_decl): Use special f2c
intrinsics where necessary.
(gfc_trans_deferred_vars): Change todo error to assertion.
* trans-expr.c (gfc_conv_variable): Dereference access
to hidden result argument.
(gfc_conv_function_call): Add hidden result argument to argument
list if f2c calling conventions requested.  Slightly restructure
tests.  Convert result of default REAL function to requested type
if f2c calling conventions are used.  Dereference COMPLEX result
if f2c cc are used.
* trans-types.c (gfc_sym_type):  Return double for default REAL
function if f2c cc are used.
(gfc_return_by_reference): Slightly restructure logic.  Return
COMPLEX by reference depending on calling conventions.
(gfc_get_function_type): Correctly make hidden result argument a
pass-by-reference argument for COMPLEX.  Remove old code which does
this for derived types.
libgfortran/
PR fortran/20178
* Makefile.am (gfor_specific_src): Add 'intrinsics/f2c_intrinsics.F90'
to dependencies.
* Makefile.in: Regenerate.
* intrinsics/f2c_specific.F90: New file.
gcc/testsuite/
PR fortran/20178
* gfortran.dg/f2c_1.f90, gfortran.dg/f2c_2.f90,
gfortran.dg/f2c_3.f90: New tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99544 138bc75d-0d04-0410-961f-82ee72b054a4
17 files changed:
gcc/fortran/ChangeLog
gcc/fortran/gfortran.h
gcc/fortran/invoke.texi
gcc/fortran/lang.opt
gcc/fortran/options.c
gcc/fortran/trans-decl.c
gcc/fortran/trans-expr.c
gcc/fortran/trans-types.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/f2c_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/f2c_2.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/f2c_3.f90 [new file with mode: 0644]
libgfortran/ChangeLog
libgfortran/Makefile.am
libgfortran/Makefile.in
libgfortran/aclocal.m4
libgfortran/intrinsics/f2c_specifics.F90 [new file with mode: 0644]