gfortran.h (gfc_typebound_proc): New struct.
authorDaniel Kraft <d@domob.eu>
Sun, 24 Aug 2008 16:15:27 +0000 (18:15 +0200)
committerDaniel Kraft <domob@gcc.gnu.org>
Sun, 24 Aug 2008 16:15:27 +0000 (18:15 +0200)
commit30b608eb7c0432299ade3b19200315bf5e147d31
tree6db985702f76c57227eacefade3ee75adf566a8b
parent6c3385c1dd9eab5144207076542c877e2cc9cf02
gfortran.h (gfc_typebound_proc): New struct.

2008-08-24  Daniel Kraft  <d@domob.eu>

* gfortran.h (gfc_typebound_proc):  New struct.
(gfc_symtree):  New member typebound.
(gfc_find_typebound_proc):  Prototype for new method.
(gfc_get_derived_super_type):  Prototype for new method.
* parse.h (gfc_compile_state):  New state COMP_DERIVED_CONTAINS.
* decl.c (gfc_match_procedure):  Handle PROCEDURE inside derived-type
CONTAINS section.
(gfc_match_end):  Handle new context COMP_DERIVED_CONTAINS.
(gfc_match_private):  Ditto.
(match_binding_attributes), (match_procedure_in_type):  New methods.
(gfc_match_final_decl):  Rewrote to make use of new
COMP_DERIVED_CONTAINS parser state.
* parse.c (typebound_default_access):  New global helper variable.
(set_typebound_default_access):  New callback method.
(parse_derived_contains):  New method.
(parse_derived):  Extracted handling of CONTAINS to new parser state
and parse_derived_contains.
* resolve.c (resolve_bindings_derived), (resolve_bindings_result):  New.
(check_typebound_override), (resolve_typebound_procedure):  New methods.
(resolve_typebound_procedures):  New method.
(resolve_fl_derived):  Call new resolving method for typebound procs.
* symbol.c (gfc_new_symtree):  Initialize new member typebound to NULL.
(gfc_find_typebound_proc):  New method.
(gfc_get_derived_super_type):  New method.

2008-08-24  Daniel Kraft  <d@domob.eu>

* gfortran.dg/finalize_5.f03:  Adapted expected error message to changes
to handling of CONTAINS in derived-type declarations.
* gfortran.dg/typebound_proc_1.f08:  New test.
* gfortran.dg/typebound_proc_2.f90:  New test.
* gfortran.dg/typebound_proc_3.f03:  New test.
* gfortran.dg/typebound_proc_4.f03:  New test.
* gfortran.dg/typebound_proc_5.f03:  New test.
* gfortran.dg/typebound_proc_6.f03:  New test.

From-SVN: r139534
15 files changed:
gcc/fortran/ChangeLog
gcc/fortran/decl.c
gcc/fortran/gfortran.h
gcc/fortran/parse.c
gcc/fortran/parse.h
gcc/fortran/resolve.c
gcc/fortran/symbol.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/finalize_5.f03
gcc/testsuite/gfortran.dg/typebound_proc_1.f08 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/typebound_proc_2.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/typebound_proc_3.f03 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/typebound_proc_4.f03 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/typebound_proc_5.f03 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/typebound_proc_6.f03 [new file with mode: 0644]