[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