------- Comment #8 from janus at gcc dot gnu dot org 2009-06-22 09:04 -------
> pr39850.f90:12:0: internal compiler error: in gfc_typenode_for_spec, at
> fortran/trans-types.c:995
Yeah, the same happens for the examples in PR37254. I didn't notice it before,
since I changed the test case slightly in my commit. Here is a patch which
fixes it:
Index: gcc/fortran/interface.c
===================================================================
--- gcc/fortran/interface.c (revision 148778)
+++ gcc/fortran/interface.c (working copy)
@@ -1407,9 +1407,14 @@
}
if (formal->attr.function && !act_sym->attr.function)
- gfc_add_function (&act_sym->attr, act_sym->name,
&act_sym->declared_at);
-
- if (formal->attr.subroutine && !act_sym->attr.subroutine)
+ {
+ gfc_add_function (&act_sym->attr, act_sym->name,
+ &act_sym->declared_at);
+ if (act_sym->ts.type == BT_UNKNOWN
+ && gfc_set_default_type (act_sym, 1, act_sym->ns) == FAILURE)
+ return 0;
+ }
+ else if (formal->attr.subroutine && !act_sym->attr.subroutine)
gfc_add_subroutine (&act_sym->attr, act_sym->name,
&act_sym->declared_at);
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39850