[Bug fortran/39630] [F03] Procedure Pointer Components with PASS
janus at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sat Jul 25 11:57:00 GMT 2009
------- Comment #5 from janus at gcc dot gnu dot org 2009-07-25 11:56 -------
Subject: Bug 39630
Author: janus
Date: Sat Jul 25 11:56:35 2009
New Revision: 150078
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=150078
Log:
2009-07-25 Janus Weil <janus@gcc.gnu.org>
PR fortran/39630
* decl.c (match_ppc_decl): Implement the PASS attribute for procedure
pointer components.
(match_binding_attributes): Ditto.
* gfortran.h (gfc_component): Add member 'tb'.
(gfc_typebound_proc): Add member 'ppc' and make 'pass_arg' const.
* module.c (MOD_VERSION): Bump module version.
(binding_ppc): New string constants.
(mio_component): Only use formal args if component is a procedure
pointer and add 'tb' member.
(mio_typebound_proc): Include pass_arg and take care of procedure
pointer components.
* resolve.c (update_arglist_pass): Add argument 'name' and take care of
optional arguments.
(extract_ppc_passed_object): New function, analogous to
extract_compcall_passed_object, but for procedure pointer components.
(update_ppc_arglist): New function, analogous to
update_compcall_arglist, but for procedure pointer components.
(resolve_typebound_generic_call): Added argument to
update_arglist_pass.
(resolve_ppc_call, resolve_expr_ppc): Take care of PASS attribute.
(resolve_fl_derived): Check the PASS argument for procedure pointer
components.
* symbol.c (verify_bind_c_derived_type): Reject procedure pointer
components in BIND(C) types.
2009-07-25 Janus Weil <janus@gcc.gnu.org>
PR fortran/39630
* gfortran.dg/proc_ptr_comp_3.f90: Modified.
* gfortran.dg/proc_ptr_comp_pass_1.f90: New.
* gfortran.dg/proc_ptr_comp_pass_2.f90: New.
* gfortran.dg/proc_ptr_comp_pass_3.f90: New.
* gfortran.dg/proc_ptr_comp_pass_4.f90: New.
* gfortran.dg/proc_ptr_comp_pass_5.f90: New.
* gfortran.dg/typebound_call_10.f03: New.
Added:
trunk/gcc/testsuite/gfortran.dg/proc_ptr_comp_pass_1.f90
trunk/gcc/testsuite/gfortran.dg/proc_ptr_comp_pass_2.f90
trunk/gcc/testsuite/gfortran.dg/proc_ptr_comp_pass_3.f90
trunk/gcc/testsuite/gfortran.dg/proc_ptr_comp_pass_4.f90
trunk/gcc/testsuite/gfortran.dg/proc_ptr_comp_pass_5.f90
trunk/gcc/testsuite/gfortran.dg/typebound_call_10.f03
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/decl.c
trunk/gcc/fortran/gfortran.h
trunk/gcc/fortran/module.c
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/symbol.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/proc_ptr_comp_3.f90
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39630
More information about the Gcc-bugs
mailing list