[Patch, fortran] PR33664 - crash on invalid program
Paul Richard Thomas
paul.richard.thomas@gmail.com
Mon Oct 8 04:45:00 GMT 2007
Tobias,
> I'm embarassed to say that I don't understand the fix. What is the
> purpose of checking .isym and .esym? What is their purpose, anyway? I
> understand that they're the actual functions being called, but under
> which circumstances. I think this is a great time for you to bring some
> enlightenment to the obscure parts of gfortran :-)
I am the last person that you should be asking for enlightenment!
The purpose of checking isym and esym is to establish whether or not
the function has been resolved. I realise upon writing this that
e->value.function.name can substitute for both. isym and esym are the
symbols for either intrinsic or "external"(I believe but have not
checked that it is actually everything that is not intrinsic.)
functions. The reason that they are different is, of course, that
isym points to a gfc_intrinsic_sym, rather than a gfc_symbol.
For the purposes of this patch, the lack of resolution and the
impurity indicate that the symbol cannot be a function in a
specification expression.
Paul
More information about the Fortran
mailing list