diff options
author | Paul Thomas <pault@gcc.gnu.org> | 2009-03-30 19:35:14 +0000 |
---|---|---|
committer | Paul Thomas <pault@gcc.gnu.org> | 2009-03-30 19:35:14 +0000 |
commit | 71a7778cd95891c6534f84ce4097ca2431904973 (patch) | |
tree | 3d04f401d942074656d07f10c4252bef4c56ac37 /gcc/fortran/invoke.texi | |
parent | 5b0c0b2c05d84902395b6a21d82c2be2f6406812 (diff) | |
download | gcc-71a7778cd95891c6534f84ce4097ca2431904973.zip gcc-71a7778cd95891c6534f84ce4097ca2431904973.tar.gz gcc-71a7778cd95891c6534f84ce4097ca2431904973.tar.bz2 |
re PR fortran/22571 (Reject derived types for dummy arguments declared in the subroutine unless they are SEQUENCE)
2009-03-30 Paul Thomas <pault@gcc.gnu.org>
PR fortran/22571
PR fortran/26227
PR fortran/24886
* symbol.c : Add gfc_global_ns_list.
* decl.c (add_global_entry): Set the namespace ('ns') field.
* gfortran.h : Add the resolved field to gfc_namespace. Add the
namespace ('ns') field to gfc_gsymbol. Add flag_whole_file to
gfc_option_t. Add the prototype for gfc_free_dt_list.
* lang.opt : Add the whole-file option.
* invoke.texi : Document the whole-file option.
* resolve.c (resolve_global_procedure): If the fwhole-file
option is set, reorder gsymbols to ensure that translation is
in the right order. Resolve the gsymbol's namespace if that
has not occurred and then check interfaces.
(resolve_function): Move call to resolve_global_procedure.
(resolve_call): The same.
(resolve_codes): Store the current labels_obstack.
(gfc_resolve) : Return if the namespace is already resolved.
trans-decl.c (gfc_get_extern_function_decl): If the whole_file
option is selected, use the backend_decl of a gsymbol, if it is
available.
parse.c (add_global_procedure, add_global_program): If the flag
whole-file is set, add the namespace to the gsymbol.
(gfc_parse_file): On -fwhole-file, put procedure namespaces on
the global namespace list. Rearrange to do resolution of all
the procedures in a file, followed by their translation.
* options.c (gfc_init_options): Add -fwhole-file.
(gfc_handle_option): The same.
2009-03-30 Paul Thomas <pault@gcc.gnu.org>
PR fortran/22571
* gfortran.dg/whole_file_1.f90: New test.
PR fortran/26227
* gfortran.dg/whole_file_2.f90: New test.
* gfortran.dg/whole_file_3.f90: New test.
PR fortran/24886
* gfortran.dg/whole_file_4.f90: New test.
From-SVN: r145314
Diffstat (limited to 'gcc/fortran/invoke.texi')
-rw-r--r-- | gcc/fortran/invoke.texi | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/fortran/invoke.texi b/gcc/fortran/invoke.texi index a263a15..e49297d3 100644 --- a/gcc/fortran/invoke.texi +++ b/gcc/fortran/invoke.texi @@ -164,7 +164,7 @@ and warnings}. @item Code Generation Options @xref{Code Gen Options,,Options for code generation conventions}. @gccoptlist{-fno-automatic -ff2c -fno-underscoring @gol --fsecond-underscore @gol +-fwhole-file -fsecond-underscore @gol -fbounds-check -fcheck-array-temporaries -fmax-array-constructor =@var{n} @gol -fcheck=@var{<all|bounds|array-temps>} -fmax-stack-var-size=@var{n} @gol @@ -1158,6 +1158,19 @@ in the source, even if the names as seen by the linker are mangled to prevent accidental linking between procedures with incompatible interfaces. +@item -fwhole-file +@opindex @code{fwhole-file} +By default, GNU Fortran parses, resolves and translates each procedure +in a file separately. Using this option modifies this such that the +whole file is parsed and placed in a single front-end tree. During +resolution, in addition to all the usual checks and fixups, references +to external procedures that are in the same file effect resolution of +that procedure, if not already done, and a check of the interfaces. The +dependences are resolved by changing the order in which the file is +translated into the backend tree. Thus, a procedure that is referenced +is translated before the reference and the duplication of backend tree +declarations eliminated. + @item -fsecond-underscore @opindex @code{fsecond-underscore} @cindex underscore |