re PR fortran/59023 (ICE in gfc_search_interface with BIND(C))

2014-01-06  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/59023
	PR fortran/59662
	* resolve.c (resolve_global_procedure): Don't apply to c-binding
	procedures.
	(gfc_verify_binding_labels): Remove duplicate line.

2014-01-06  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/59023
	* gfortran.dg/bind_c_procs_2.f90: New.

From-SVN: r206355
This commit is contained in:
Janus Weil 2014-01-06 12:31:34 +01:00
parent c7d19c0b58
commit 04ba12ef8d
4 changed files with 36 additions and 1 deletions

View File

@ -1,3 +1,11 @@
2014-01-06 Janus Weil <janus@gcc.gnu.org>
PR fortran/59023
PR fortran/59662
* resolve.c (resolve_global_procedure): Don't apply to c-binding
procedures.
(gfc_verify_binding_labels): Remove duplicate line.
2014-01-04 Janus Weil <janus@gcc.gnu.org>
PR fortran/59547

View File

@ -2351,6 +2351,7 @@ resolve_global_procedure (gfc_symbol *sym, locus *where,
if ((sym->attr.if_source == IFSRC_UNKNOWN
|| sym->attr.if_source == IFSRC_IFBODY)
&& gsym->type != GSYM_UNKNOWN
&& !gsym->binding_label
&& gsym->ns
&& gsym->ns->resolved != -1
&& gsym->ns->proc_name
@ -10163,7 +10164,6 @@ gfc_verify_binding_labels (gfc_symbol *sym)
gsym->where = sym->declared_at;
gsym->sym_name = sym->name;
gsym->binding_label = sym->binding_label;
gsym->binding_label = sym->binding_label;
gsym->ns = sym->ns;
gsym->mod_name = module;
if (sym->attr.function)

View File

@ -1,3 +1,8 @@
2014-01-06 Janus Weil <janus@gcc.gnu.org>
PR fortran/59023
* gfortran.dg/bind_c_procs_2.f90: New.
2014-01-05 John David Anglin <danglin@gcc.gnu.org>
* gcc.dg/tree-ssa/reassoc-33.c: Don't run on hppa*-*-*.

View File

@ -0,0 +1,22 @@
! { dg-do compile }
!
! PR 59023: [4.9 regression] ICE in gfc_search_interface with BIND(C)
!
! Contributed by Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
type t
integer hidden
end type
contains
subroutine bar
type(t) :: toto
interface
integer function helper() bind(c)
end function
end interface
toto = t(helper())
end subroutine
end