[Patch,Fortran] Fix tree-walking issue

Tobias Schlüter tobias.schlueter@physik.uni-muenchen.de
Tue Nov 1 21:41:00 GMT 2011


Dear Tobias,

On 2011-11-01 22:33, Tobias Burnus wrote:
> Regarding the tree-walking issue: I think it is a general issue which
> could also affect other things. I really wonder why we haven't been
> bitten by it before. However, it might be that we hit those problems and
> fixed them by "re"-resolving symbols at later parts. My feeling is that
> the issue occurs either only with vtab/vtree or at least also due to
> those functions. However, I might be wrong as I do not quickly see which
> of the tree-traversal callers can generate new trees.

I don't remember all this very clearly, but I think that the 
gfc_symbol::tlink field is intended for something like this, even though 
this is not very clear (at least to me) from the explanatory comment I 
quoted below.  Anyway, I thought I might point this out, as it might 
help you getting things working since the problem it addresses at least 
appears similar:

   /* Change management fields.  Symbols that might be modified by the
      current statement have the mark member nonzero and are kept in a
      singly linked list through the tlink field.  Of these symbols,
      symbols with old_symbol equal to NULL are symbols created within
      the current statement.  Otherwise, old_symbol points to a copy of
      the old symbol.  */

   struct gfc_symbol *old_symbol, *tlink;

Cheers,
- Tobi



More information about the Fortran mailing list