[Patch, fortran] PR55827 ICE with multiple fortran modules.

Mikael Morin mikael.morin@sfr.fr
Thu Jan 3 21:31:00 GMT 2013


Hello,

here is a fix for PR fortran/55827 where we had a function expression 
(loaded from a module) whose symtree pointer was NULL.  My attempt to 
have symtree properly set got me way too far, so this is fixing the 
unconditional usages of symtree based on Steve's patch in the PR.  As 
noted in the PR, it looks bogus to have a NULL expr->symtree, but in 
fact expr->value.function.esym is set, and it is what is solely looked 
at, apart for the cases fixed in this patch.

The trans-expr.c part initializes `sym' earlier and uses it instead of 
accessing `expr->symtree' directly.

The class.c part creates a similar construct to initialize `ts' without 
accessing `expr->symtree' directly.  I don't use Steve's way (returning 
early for a NULL symtree), because I remembered that `expr->symtree' 
could be a generic symbol, thus have invalid type for use to initialize 
`ts', contrary to `expr->value.function.esym'.  It's better to always 
use `esym' when it is available.  And then returning early on NULL 
symtree is not necessary any more.

Regression tested on x86_64-unknown-linux-gnu. OK for trunk?
Do we want it on the branches as well?

Mikael







-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: pr55827_submit.CL
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20130103/7bb856dc/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: pr55827_submit.diff
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20130103/7bb856dc/attachment-0001.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: pr55827-test.CL
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20130103/7bb856dc/attachment-0002.ksh>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: use_10.f90
Type: text/x-fortran
Size: 920 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20130103/7bb856dc/attachment.bin>


More information about the Gcc-patches mailing list