This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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] |
Dear All, The attached rework of the patch functions in the same way as yesterday's but is based in resolve.c rather than trans-decl.c. It looks to me to be by far cleaner. Bootstraps and regtests on FC23/x86_64 - OK for trunk? Cheers Paul 2017-02-08 Paul Thomas <pault@gcc.gnu.org> PR fortran/79344 * resolve.c (fixup_unique_dummy): New function. (gfc_resolve_expr): Call it for dummy variables with a unique symtree name. 2017-02-08 Paul Thomas <pault@gcc.gnu.org> PR fortran/79344 * gfortran.dg/submodule_23.f90: New test. On 7 February 2017 at 16:06, Paul Richard Thomas <paul.richard.thomas@gmail.com> wrote: > Dear All, > > This bug generates an ICE because the symbol for dummy 'n' in the > specification expression for the result of 'fun1' is not the same as > the symbol in the formal arglist. For some reason that I have been > unable to uncover, this false dummy is associated with a unique > symtree. The odd thing is that the dump of the parse tree for the > failing module procedure case is identical to that where the interface > is explcitely reproduced in the submodule. The cause of the ICE is > that the false dummy has no backend_decl as it should. > > This patch hits the problem directly on the head by using the > backend_decl from the symbol in the namespace of the formal arglist, > as described in the comment in the patch. If it is deemed to be more > hygenic, the chunk of code can be lifted out and deposited in a > separate function. > > Bootstraps and regtests on FC23/x86_64 - OK for trunk? > > Cheers > > Paul > > 2017-02-07 Paul Thomas <pault@gcc.gnu.org> > > PR fortran/79344 > * trans-decl.c (gfc_get_symbol_decl): If a dummy apparently has > a null backend_decl, look for a replacement symbol in the > namespace of the 1st formal argument and use its backend_decl. > > 2017-02-07 Paul Thomas <pault@gcc.gnu.org> > > PR fortran/79344 > * gfortran.dg/submodule_23.f90: New test. -- "If you can't explain it simply, you don't understand it well enough" - Albert Einstein
Attachment:
resubmit.diff
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |