diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 1478f9aa979..ebabcb7ff7c 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,7 @@ +2010-11-11 Janus Weil + + * resolve.c (resolve_procedure_interface): Copy 'is_bind_c' attribute. + 2010-11-10 Joseph Myers * trans-array.c (gfc_trans_deferred_array): Use "front-end" diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 2c9d6f61d6f..1f5630d4535 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -176,6 +176,7 @@ resolve_procedure_interface (gfc_symbol *sym) sym->attr.recursive = ifc->attr.recursive; sym->attr.always_explicit = ifc->attr.always_explicit; sym->attr.ext_attr |= ifc->attr.ext_attr; + sym->attr.is_bind_c = ifc->attr.is_bind_c; /* Copy array spec. */ sym->as = gfc_copy_array_spec (ifc->as); if (sym->as) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 315660166fc..bac2400fe2d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2010-11-11 Janus Weil + + * gfortran.dg/proc_decl_24.f90: New. + 2010-11-11 Nicola Pero * objc.dg/property/at-property-20.m: New. diff --git a/gcc/testsuite/gfortran.dg/proc_decl_24.f90 b/gcc/testsuite/gfortran.dg/proc_decl_24.f90 new file mode 100644 index 00000000000..01cbb7c37c1 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/proc_decl_24.f90 @@ -0,0 +1,22 @@ +! { dg-do compile } +! +! Contributed by James van Buskirk +! +! http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/44d572766bce0e6f/ + + use iso_c_binding + implicit none + + abstract interface + subroutine all_subs(x,y) bind(C) + use iso_c_binding + real(c_float) :: x,y + end subroutine all_subs + end interface + + procedure(all_subs) :: sub + type(C_FUNPTR) :: s + + s = c_funloc (sub) + +end