This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch, Fortran] PR54884 - Fix TREE_PUBLIC()=0 regression for module procedures
- From: Paul Richard Thomas <paul dot richard dot thomas at gmail dot com>
- To: Tobias Burnus <burnus at net-b dot de>
- Cc: gcc patches <gcc-patches at gcc dot gnu dot org>, gfortran <fortran at gcc dot gnu dot org>
- Date: Thu, 18 Oct 2012 19:00:50 +0200
- Subject: Re: [Patch, Fortran] PR54884 - Fix TREE_PUBLIC()=0 regression for module procedures
- References: <507E8223.2020601@net-b.de>
Hi Tobias,
The patch to fortran/cpp.c looks like a very worthy bit of
housekeeping but doesn't seem to me to have much to do with PR54844
:-)
The rest is fine and is OK for trunk.
Thanks for the fix.
Paul
On 17 October 2012 12:02, Tobias Burnus <burnus@net-b.de> wrote:
> In GCC 4.8, module variables/procedures are marked as TREE_PUBLIC() if they
> are PRIVATE and not publicly visible used in PUBLIC procedures; the latter
> happens either via generic interfaces or via specification expressions. (The
> bug is old [early 4.8] but due to a recent follow up patch, the chance to
> run into this issue has increased.)
>
> This patch adds the public_use attribute logic (also) to resolve_function,
> before it was only in resolve_symbol.
>
> When doing so, I realized that it was also set for "other" as the
> specification_expr variable wasn't properly reset. I fixed that but I had
> also to add a few additional "specification_expr = true" as the current code
> only handled gfc_resolve_array_spec by chance.
>
> Build and regtested on x86-64-gnu-linux.
> OK for the trunk?
>
> Tobias
--
The knack of flying is learning how to throw yourself at the ground and miss.
--Hitchhikers Guide to the Galaxy