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.

Reply via email to