Another PPC leftover item, cf. trans-types.c (gfc_get_ppc_type): When translating the Fortran frontend structures to a backend tree, the argument list of procedure pointer components is currently not being used.
This becomes visible in a test case like this: implicit none procedure(foo), pointer :: pp type :: t procedure(foo), pointer, nopass :: ppc end type type(t)::o pp => foo o%ppc => foo pp => o%ppc contains integer function foo(a,b) integer, intent(in) :: a,b foo = a + b end function end Compiling with -fdump-tree-original shows the following code for the three pointer assignments: pp = foo; o.ppc = (integer(kind=4) (*<T3c6>) (void)) foo; pp = (integer(kind=4) (*<T3c8>) (integer(kind=4) &, integer(kind=4) &)) o.ppc; The first one is ok, but the last two involve type casting, although they have exactly the same interface (simply because the arguments of the PPC are missing). -- Summary: [F03] include formal args in backend_decl of PPCs Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: janus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40870