[Bug fortran/52542] Procedure with a Bind (C) named interface does not inherit the Bind (C)

burnus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Mar 9 13:31:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52542

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-03-09
                 CC|                            |burnus at gcc dot gnu.org
     Ever Confirmed|0                           |1

--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-03-09 13:31:19 UTC ---
Confirmed. It's an interesting issue, but fortunately clearly specified in the
standard (F2008):

C1222 (R1211) If proc-language-binding-spec is specified, the proc-interface
      shall appear, it shall be an interface-name, and interface-name shall be
      declared with a proc-language-binding-spec.

and then in 12.4.3.6p5 (normative):

"A proc-language-binding-spec without a NAME= is allowed, but is redundant with
the proc-interface required by C1222."


Untested patch:

--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -4857,2 +4857,5 @@ match_procedure_decl (void)

+  if (proc_if && proc_if->attr.is_bind_c)
+    sym->attr.is_bind_c = 1;
+
   /* Get procedure symbols.  */



More information about the Gcc-bugs mailing list