[Bug fortran/54107] [4.8 Regression] Memory hog with abstract interface

janus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Jan 26 11:31:00 GMT 2013


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?



More information about the Gcc-bugs mailing list