[Patch, fortran] PR31630 revisited
Paul Richard Thomas
paul.richard.thomas@gmail.com
Wed May 2 20:14:00 GMT 2007
:ADDPATCH fortran:
In the recent patch for this PR, I left a TODO to sort out the reason
why formal namespaces associated with modules were clean, whilst those
coming from interfaces had to be treated with kid gloves. In
preparing to improve module reading, I had to sort out what needed
copying from use associated symbols. Quite by accident, I noticed a
significant difference between formal namespaces associated with
modules and interfaces:- those coming from interfaces include the
symbol for the procedure itself. The segfaults and other symptoms
were red herrings; resolve_namespace had gone into a recursion loop.
The fix is easy and consists of throwing away the current flagging
mechanism and replacing it with a check that the formal_namespace is
not the current one. This eliminates the recursion and effects the
fix for PR31630, whilst simplifying resolve_symbol.
Bootstrapped and regtested on x86_ia64/FC5. OK for trunk?
Paul
2007-05-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31630
* resolve.c (resolve_symbol): Remove the flagging mechanism from the
formal namespace resolution and instead check that the formal
namespace is not the current namespace.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: check.diff
Type: application/octet-stream
Size: 1761 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20070502/187e7018/attachment.obj>
More information about the Fortran
mailing list