This is the mail archive of the
mailing list for the GCC project.
Re: [Patch, Fortran] PR52916 - fix TREE_PUBLIC() = 0 for module procedures
- From: "H.J. Lu" <hjl dot tools 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: Sun, 15 Apr 2012 09:51:01 -0700
- Subject: Re: [Patch, Fortran] PR52916 - fix TREE_PUBLIC() = 0 for module procedures
- References: <4F857EF0.email@example.com>
On Wed, Apr 11, 2012 at 5:54 AM, Tobias Burnus <firstname.lastname@example.org> wrote:
> Dear all,
> my recent patch for setting PRIVATE module variables and procedures to
> TREE_PUBLIC()=0 had a flaw: I completely forgot about generic interfaces.
> Even if the specific name is PRIVATE, the specific function is still
> callable through the a (public) generic name.
> Thanks to HJ for the report. (The bug causes a failures of SPEC CPU 2006.)
> I think the handling of type-bound procedures is correct. However, I
> wouldn't mind if someone could confirm it. I only check for the specific
> entries as GENERIC, OPERATOR and ASSIGNMENT use a type-bound-proc name,
> which is already handled. I also didn't try to optimize for private DT,
> private generics etc. First, I think it is not needed. And secondly, through
> inheritance, it can get extremely complicated.
> Build and regtested on x86-64-linux.
> OK for the trunk?
The testcase failed with
Fatal Error: Can't open module file 'm.mod' for reading at (1): No
such file or directory^M
compiler exited with status 1