re PR fortran/20178 (COMPLEX function returns incompatible with g77)
authorTobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
Tue, 10 May 2005 22:06:55 +0000 (00:06 +0200)
committerTobias Schlüter <tobi@gcc.gnu.org>
Tue, 10 May 2005 22:06:55 +0000 (00:06 +0200)
commit973ff4c052b6feae740fbd3c5adcdaf1cf06ec47
tree6cff06cdd4e25eaf7ccb4278260ebfd2d406f4f9
parentd096725d2690b6885df1e958778905fb9ac05720
re PR fortran/20178 (COMPLEX function returns incompatible with g77)

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.

From-SVN: r99544
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]