https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99982
Bug ID: 99982 Summary: INTERFACE selects wrong module procedure involving C_PTR and C_FUNPTR Product: gcc Version: 10.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: brtnfld at hdfgroup dot org Target Milestone: --- Created attachment 50532 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50532&action=edit program uses interface and module procedure to select between subroutines with type C_PTR and C_FUNPTR The attached program always selects the TYPE(C_FUNPTR) when selecting between a (overloaded) subroutine with TYPE(C_PTR) and TYPE(C_FUNPTR), even when the variable type is TYPE(C_PTR). It does this for both passing a variable as the argument or using the C_LOC or c_funloc directly in the call. I tried it with 7.5.0, 10.2.0, same behavior. Intel and NAG both select the correct subroutine.