------- Comment #1 from kargl at gcc dot gnu dot org 2009-06-05 15:12 -------
Looks like a bug in ifort and g95.
15.1.2.4 C FUNLOC (X)
Description. Returns the C address of the argument.
Class. Inquiry function.
Argument. X shall either be a procedure that is interoperable,
or a procedure pointer associated with an interoperable
procedure.
sub1 isn't a procedure pointer, so everything after the 'or' is
irrelevant. Now, for the 'either' portion of the above.
15.2.6 Interoperability of procedures and procedure interfaces
A Fortran procedure is interoperable if it has the BIND attribute,
that is, if its interface is specified with a proc-language-binding-spec.
R1225 proc-language-binding-spec is language-binding-spec
R509 language-binding-spec is
BIND (C [, NAME = scalar-char-initialization-expr ])
What do the experts on comp.lang.fortran think of your code?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40354