2006-12-09 Paul Thomas <pault@gcc.gnu.org>
authorpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 9 Dec 2006 21:13:29 +0000 (21:13 +0000)
committerpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 9 Dec 2006 21:13:29 +0000 (21:13 +0000)
commit2eb6b201d83e81e916edf4344e3786781f2ade05
treec8776eb41194bb8dda5bb0ceb9bff152156493b2
parent47b07579d3eda6e5afe4d7163b982f46a7eda082
2006-12-09  Paul Thomas <pault@gcc.gnu.org>

PR fortran/29975
PR fortran/30068
PR fortran/30096
* interface.c (compare_type_rank_if): Reject invalid generic
interfaces.
(check_interface1): Give a warning for nonreferred to ambiguous
interfaces.
(check_sym_interfaces): Check whether an ambiguous interface is
referred to.  Do not check host associated interfaces since these
cannot be ambiguous with the local versions.
(check_uop_interface, gfc_check_interfaces): Update call to
check_interface1.
* symbol.c (gfc_get_sym_tree, gfc_get_sym_tree): Allow adding
unambiguous procedures to generic interfaces.
* gfortran.h (symbol_attribute): Added use_only and
ambiguous_interfaces.
* module.c (load_need): Set the use_only flag, if needed.
* resolve.c (resolve_fl_procedure): Warn for nonreferred
interfaces.
* expr.c (find_array_section): Fix initializer array contructor.

2006-12-09  Paul Thomas <pault@gcc.gnu.org>
    Tobias Burnus <burnus@gcc.gnu.org>

PR fortran/29975
PR fortran/30068
* gfortran.dg/interface_4.f90: Test adding procedure to generic
interface.
* gfortran.dg/interface_5.f90: Test warning for not-referenced-to
ambiguous interfaces.
* gfortran.dg/interface_6.f90: Test invalid, ambiguous interface.
* gfortran.dg/interface_7.f90: Test invalid, ambiguous interface.
* gfortran.dg/interface_8.f90: Test warning for not-referenced-to
ambiguous interfaces.
* gfortran.dg/interface_1.f90: Change dg-error into a dg-warning.
* gfortran.dg/array_initializer_2.f90: Add initializer array
constructor test.

PR fortran/30096
* gfortran.dg/interface_9.f90: Test that host interfaces are
not checked for ambiguity with the local version.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119697 138bc75d-0d04-0410-961f-82ee72b054a4
17 files changed:
gcc/fortran/ChangeLog
gcc/fortran/expr.c
gcc/fortran/gfortran.h
gcc/fortran/interface.c
gcc/fortran/module.c
gcc/fortran/resolve.c
gcc/fortran/symbol.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/array_initializer_2.f90
gcc/testsuite/gfortran.dg/generic_7.f90
gcc/testsuite/gfortran.dg/interface_1.f90
gcc/testsuite/gfortran.dg/interface_4.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/interface_5.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/interface_6.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/interface_7.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/interface_8.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/interface_9.f90 [new file with mode: 0644]