This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/20363] interface body has incorrect scope
- From: "erik dot edelmann at iki dot fi" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Jul 2005 13:00:13 -0000
- Subject: [Bug fortran/20363] interface body has incorrect scope
- References: <20050307183348.20363.paulthomas2@wanadoo.fr>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From erik dot edelmann at iki dot fi 2005-07-27 13:00 -------
(In reply to comment #7)
> Subject: Re: interface body has incorrect scope
>
> Paul, do you have any idea what find_special could be intended for? It seems
> obvious that it does the wrong thing in the case of this PR, and I can't see
> any case where it would be needed, but I would be surprised if there's no
> intent behind it, and in another compiler the function is still present, does
> the same thing, and is called in the same places. Are there maybe any other
> changes in symbol handling compensating for this?
I've taken a look at "another compiler" (i.e. g95). The difference is in
(gfc|g95)_match_interface(). While we do
case INTERFACE_GENERIC:
<...>
current_interface.sym = gfc_new_block = sym;
g95 does:
case INTERFACE_GENERIC:
<...>
g95_new_block = NULL;
The result of this is that in find_special(), when we get to the point
if (s->state != COMP_INTERFACE || s->sym == NULL)
goto normal; /* Nameless interface */
(or corresponding point in gfortran source code), g95 will 'goto normal', while
we continue. In other words; g95 treats generic interfaces as nameless
interfaces. This brings me to a question: what is a "named interface"? I had
assumed that it would the same thing as a generic interface, but in g95 code it
is apperantly not.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20363