https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85877
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |anlauf at gcc dot gnu.org Keywords|ice-on-valid-code |ice-on-invalid-code --- Comment #5 from anlauf at gcc dot gnu.org --- I doubt that the testcase in comment#0 is actually valid. In fact, it is empirically rejected by most compilers. E.g. Intel v21: pr85877.f90(2): error #8067: If any bind-entity in a bind-stmt is an entity-name, the bind-stmt shall appear in the specification part of a module. [F] bind(c) f ----------^ pr85877.f90(3): error #6410: This name has not been declared as an array or a function. [F] x = f() ------^ The F2018 standard has a few things here, e.g. on the BIND statement ! 8.6.4 BIND statement ! ... ! The BIND statement specifies the BIND attribute for a list of variables ! and common blocks. ! 18.3.6 Interoperability of procedures and procedure interfaces ! A Fortran procedure is interoperable if and only if it has the BIND ! attribute, that is, if its interface is specified with a ! proc-language-binding-spec. Since there is no explicit interface, c.f. ! 15.4.2.2 Explicit interface ! Within the scope of a procedure identifier, the procedure shall have an ! explicit interface if it is not a statement function and ! ... ! (6) the procedure has the BIND attribute. While I'm not sure that Intel has all the wording right, the reason is almost right. ;-) Thus changing to ice-on-invalid.