2009-03-30 Paul Thomas <pault@gcc.gnu.org>
commit83aeedb979b2d203e4135bb55fa0c07e5b250635
authorpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Mar 2009 19:35:14 +0000 (30 19:35 +0000)
committerpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Mar 2009 19:35:14 +0000 (30 19:35 +0000)
tree3d04f401d942074656d07f10c4252bef4c56ac37
parent951e5184fbf22661999a727e163cc17bfa5d6244
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145314 138bc75d-0d04-0410-961f-82ee72b054a4
16 files changed:
gcc/fortran/ChangeLog
gcc/fortran/decl.c
gcc/fortran/gfortran.h
gcc/fortran/invoke.texi
gcc/fortran/lang.opt
gcc/fortran/options.c
gcc/fortran/parse.c
gcc/fortran/resolve.c
gcc/fortran/symbol.c
gcc/fortran/trans-array.c
gcc/fortran/trans-decl.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/whole_file_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/whole_file_2.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/whole_file_3.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/whole_file_4.f90 [new file with mode: 0644]