Hi all, the attached patch is the solution that I came up with for this PR (after two simpler but wrong attempts, see PR). The issue addressed here is the setting of the if_source attribute for dummy procedures. When declaring a procedure (pointer) with the PROCEDURE statement, the attributes of the dummies (including if_source) should be copied from the source interface (cf. gfc_copy_formal_args).
The patch was successfully regtested on x86_64-unknown-linux-gnu. Ok for trunk? Cheers, Janus 2012-07-16 Janus Weil <ja...@gcc.gnu.org> PR fortran/53956 * gfortran.h (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Modified prototypes. * symbol.c (gfc_copy_formal_args): New argument 'if_src'. Copy if_source of dummy procedures. (gfc_copy_formal_args_ppc): Ditto. * resolve.c (resolve_procedure_interface): Pass IFSRC_DECL to gfc_copy_formal_args. (resolve_fl_derived0): Pass IFSRC_DECL to gfc_copy_formal_args_ppc. 2012-07-16 Janus Weil <ja...@gcc.gnu.org> PR fortran/53956 * gfortran.dg/proc_decl_28.f90: New.
pr53956_v3.diff
Description: Binary data
proc_decl_28.f90
Description: Binary data