PR 36322/36463
Mikael Morin
mikael.morin@tele2.fr
Mon Oct 20 15:03:00 GMT 2008
Janus Weil wrote:
> Hi all,
Hi,
>
> I'd appreciate very much some comments on the patch, and ideas how to
> get rid of the remaining ICE on testcase5 (I just can't figure out its
> origin).
Hum, it fails in the middle-end, so I would say good luck, have fun.
I'm glad I didn't take this PR. :p
I dumped the generated code (-fdump-tree-original) and I saw some
suspicious variables starting with dots.
Like here :
__result_gp = get_funloc (make_mess, ..__result);
I think variables are named as follows (please someone confirms) :
<name>.<numeric code>
for exemple :
tmp.3
so we can have code like this (in this example, tmp.3 is an array
descriptor):
tmp.3.offset = 0;
So I guess that this "..__result" should be understood as
"<unset>.<unset>.__result".
At least this gives you some places where you should investigate, but
you may need the help of middle-end gurus to get more valuable comments.
About your patch, I didn't look closely at it, but I would say that you
don't need the '&' before replace_symbol in the call to gfc_traverse_expr.
And the gfc_expr_replace_symbols function looks like gfc_traverse_expr
is changing i's value. I think that it would be clearer like this:
{
gfc_traverse_expr (expr, dest, replace_symbol, 0);
return 0;
}
While you are at it, you can change the return value to void because it
is always 0.
Those are only details anyway.
>
> Cheers,
> Janus
>
Cheers too
Mikael
More information about the Fortran
mailing list