------- Comment #6 from pault at gcc dot gnu dot org 2007-10-02 07:17 ------- Subject: Bug 31229
Author: pault Date: Tue Oct 2 07:17:01 2007 New Revision: 128948 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128948 Log: 2007-10-02 Paul Thomas <[EMAIL PROTECTED]> PR fortran/31154 PR fortran/31229 PR fortran/33334 * decl.c : Declare gfc_function_kind_locs and gfc_function_type_locus. (gfc_match_kind_spec): Add second argument kind_expr_only. Store locus before trying to match the expression. If the current state corresponds to a function declaration and there is no match to the expression, read to the parenthesis, return kind = -1, dump the expression and return. (gfc_match_type_spec): Renamed from match_type_spec and all references changed. If an interface or an external function, store the locus, set kind = -1 and return. Otherwise, if kind is already = -1, use gfc_find_symbol to try to find a use associated or imported type. match.h : Prototype for gfc_match_type_spec. * parse.c (match_deferred_characteristics): New function. (parse_spec): If in a function, statement is USE or IMPORT or DERIVED_DECL and the function kind=-1, call match_deferred_characteristics. If kind=-1 at the end of the specification expressions, this is an error. * parse.h : Declare external gfc_function_kind_locs and gfc_function_type_locus. 2007-10-02 Paul Thomas <[EMAIL PROTECTED]> PR fortran/31154 PR fortran/31229 PR fortran/33334 * gfortran.dg/function_kinds_1.f90: New test. * gfortran.dg/function_kinds_2.f90: New test. * gfortran.dg/derived_function_interface_1.f90: Correct illegal use association into interfaces. Added: trunk/gcc/testsuite/gfortran.dg/function_kinds_1.f90 trunk/gcc/testsuite/gfortran.dg/function_kinds_2.f90 trunk/gcc/testsuite/gfortran.dg/intent_out_2.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/decl.c trunk/gcc/fortran/match.h trunk/gcc/fortran/parse.c trunk/gcc/fortran/parse.h trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gfortran.dg/derived_function_interface_1.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31229