http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54107
--- Comment #14 from janus at gcc dot gnu.org 2013-01-26 11:31:24 UTC --- (In reply to comment #13) > (In reply to comment #12) > > Here is an updated version of Mikael's patch, which is free of testsuite > > regressions. > > Indeed, it was not that difficult after all. :-) Yeah, once you give it a try ... ;) But seriously: Thanks for making a start on this (I guess it was a silly idea from the start to try and copy everything). > Are procedure dummy arguments mutually exclusive with non-NULL procedure > interface, so that there is no dummy ambiguity in the array spec and char > length? I'm not sure I understand the question. You can certainly declare dummy procedures with the PROCEDURE statement (so that they get a ts.interface). Still, I don't see how this could create ambiguities with the as or cl. Or are you talking about something like this: procedure(some_interface) :: proc integer(4) :: proc Without checking the standard, I would guess that this is illegal. Not sure if we reject it, though. > > It fixes comment #0, but fails with a very strange backtrace on comment 4: > > It seems to be an infinite recursion in gfc_get_function_type: > > gfc_get_function_type (gfc_symbol * sym) > { > [...] > for (f = gfc_sym_get_dummy_args (sym); f; f = f->next) > { > arg = f->sym; > if (arg) > { > [...] > if (arg->attr.flavor == FL_PROCEDURE) > { > type = gfc_get_function_type (arg); > type = build_pointer_type (type); > } So, do you have an idea how to escape this infinite recursion?