This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Patch, Fortran, OOP] PR 46849: [OOP] MODULE PROCEDURE resolution does not work in BLOCK or SELECT TYPE


Hi all,

the attached patch fixes an issue with BLOCK namespaces and symbol
resolution: In certain cases (e.g. a procedure being passed as an
actual argument to some other procedure call inside a BLOCK statement)
resolving the procedure symbol fails, because the symbol is being
created in the local BLOCK namespace (at parsing stage), since it is
not known yet that the procedure will be defined in the parent
PROGRAM/MODULE namespace.

The patch fixes this at resolution stage, by removing the extra symbol
from the local BLOCK namespace, in a similar way as it was already
being done for generics (as proposed by Tobias). It is regtested on
x86_64-unknown-linux-gnu. Ok for trunk?

Cheers,
Janus



2010-12-17? Janus Weil? <janus@gcc.gnu.org>
??? ??? Tobias Burnus <burnus@gcc.gnu.org>

??? PR fortran/46849
??? * resolve.c (resolve_symbol): Remove symbols that wrongly ended up
??? in a local BLOCK namespace.

2010-12-17? Janus Weil? <janus@gcc.gnu.org>

??? PR fortran/46849
??? * gfortran.dg/block_9.f08: New.

Attachment: pr46849.diff
Description: Binary data

Attachment: block_9.f08
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]