+2008-06-04 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36322
+ PR fortran/36275
+ * resolve.c (resolve_symbol): Correctly copy the interface for a
+ PROCEDURE declaration.
+
2008-06-02 Janus Weil <janus@gcc.gnu.org>
PR fortran/36361
/* Get the attributes from the interface (now resolved). */
if (sym->ts.interface->attr.if_source || sym->ts.interface->attr.intrinsic)
{
- sym->ts.type = sym->ts.interface->ts.type;
- sym->ts.kind = sym->ts.interface->ts.kind;
- sym->attr.function = sym->ts.interface->attr.function;
- sym->attr.subroutine = sym->ts.interface->attr.subroutine;
- copy_formal_args (sym, sym->ts.interface);
+ gfc_symbol *ifc = sym->ts.interface;
+ sym->ts = ifc->ts;
+ sym->ts.interface = ifc;
+ sym->attr.function = ifc->attr.function;
+ sym->attr.subroutine = ifc->attr.subroutine;
+ copy_formal_args (sym, ifc);
}
else if (sym->ts.interface->name[0] != '\0')
{
+2008-06-04 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36322
+ PR fortran/36275
+ * gfortran.dg/proc_decl_2.f90: Extended.
+
2008-06-04 Joseph Myers <joseph@codesourcery.com>
Maxim Kuvyrkov <maxim@codesourcery.com>
module m
+ use ISO_C_BINDING
+
abstract interface
subroutine csub() bind(c)
end subroutine csub
end interface
+ integer, parameter :: ckind = C_FLOAT_COMPLEX
+ abstract interface
+ function stub() bind(C)
+ import ckind
+ complex(ckind) stub
+ end function
+ end interface
+
procedure():: mp1
procedure(real), private:: mp2
procedure(mfun), public:: mp3
procedure(csub), public, bind(c) :: c, d
procedure(csub), public, bind(c, name="myB") :: b
+ procedure(stub), bind(C) :: e
contains
procedure(a), optional :: b
end subroutine bar
+ subroutine bar2(x)
+ abstract interface
+ character function abs_fun()
+ end function
+ end interface
+ procedure(abs_fun):: x
+ end subroutine
+
+
end module