This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran 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]

Re: [gfortran,patch] PR 25716: Implicit kind conversions in in expressions written to *.mod-files


On Wed, Jan 25, 2006 at 09:19:31PM +0200, Erik Edelmann wrote:
> On Wed, Jan 25, 2006 at 01:29:11AM +0200, Erik Edelmann wrote:
> > On Wed, Jan 25, 2006 at 01:23:34AM +0200, Erik Edelmann wrote:
> > > On Wed, Jan 25, 2006 at 12:20:28AM +0100, Tobias Schlüter wrote:
> > > > Erik Edelmann wrote:
> > > > ... in gfc_commit_symbol
> > > > > +  if (sym->old_symbol != NULL)
> > > > > +    {
> > > > > +      gfc_free (sym->old_symbol);
> > > > 
> > > > I see this is the same as in gfc_commit_symbols, but can you tell me why not
> > > > gfc_free_symbol?
> > > 
> > > Umm, no.  I just brain-lessly copied it from gfc_commit_symbols.
> > > Using gfc_free_symbol would probably be better (in both
> > > functions).
> > 
> > Except that replacing gfc_free with gfc_free_symbol here gives a
> > vast amount of testcase failures.  I'll investigate it closer
> > tomorrow (it's getting late).
> 
> old_sym is a shallow copy of sym.  A deep deallocataion of
> old_symbol (using gfc_free_symbol) would free a bunch of data
> structures needed by sym itself.

Well, there are actually two "allocatable" things in
sym->old_symbol that might differ from corresponding things in
sym: 'as' and 'value'.  Here's an updated patch that deallocates
old_symbol a little bit better, using a new function symbol.c
(free_old_symbol).

Tested on Linux/x86, 4.1 and mainline.


        Erik


2005-01-25  Erik Edelmann  <eedelman@gcc.gnu.org>

        PR fortran/25716
        * symbol.c (free_old_symbol): New function.
        (gfc_commit_symbols): Use it.
        (gfc_commit_symbol): New function.
        (gfc_use_derived): Use it.
        * gfortran.h: Add prototype for gfc_commit_symbol.
        * intrinsic.c (gfc_find_function): Search in 'conversion'
        if not found in 'functions'.
        (gfc_convert_type_warn): Add a symtree to the new
        expression node, and commit the new symtree->n.sym.
        * resolve.c (gfc_resolve_index): Make sure typespec is
        properly initialized.


2005-01-25  Erik Edelmann  <eedelman@gcc.gnu.org>

        PR fortran/25716
        * gfortran.dg/char_result_11.f90: Make it sensitive to PR
        25716 on 32-bit systems too.

Attachment: 25716.diff
Description: Text document


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