Dear Paul,
First, the new patch is fine from my side. (Although, I think the test
case should also include the vector-section example.) Thanks for working
on that regression.
Paul Richard Thomas wrote:
First of all, thanks for the review! I still owe you my comments on
FINAL; I got lost in trying to fix these various regressions :-) I
promise that I'll come back to you first thing tomorrow.
I am looking forward to them - and in particular to a patch review of
the FINAL patches. I am also interested in your comment to my LOGICAL in
BIND(C) procedures patch, namely
http://gcc.gnu.org/ml/fortran/2012-12/msg00200.html
It looks mostly okay; however, you do not handle vector sections correctly,
which leads to an ICE. Without your patch, one gets:
Error: CLASS selector at (1) needs a temporary which is not yet
implemented
With your patch, it fails as one has:
This was fairly easily fixed - see attached.
Thanks. By the way, I have filled a PR to track this "not yet
implemented" issue: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55849
I am not quite sure whether the following ICE has the same cause or a
different one, but it also ICEs with your patch applied:
select type (component => self%cb[4])
This co-array example was never OK, as far as I can tell. The error
is similar to that of the PR. However, co-arrays were just never
handled at all.... again, as far as I can tell. I'll have a go at it
tomorrow night.
I recall that we did add some coarray support for polymorphic variables.
At least with coarray arrays (contrary to coarray scalars) it seems to
compile. But it is very likely that select type never worked with
coarrays or coarray scalars.
Note that the coindexd
select type (component => self%cb[4])
is invalid (C803; PR55850 (a)). However, the same failure occurs for
noncoindexed valid selector:
select type (component => self%cb)
(See also PR 55850 for some other SELECT TYPE issues I found.)
Tobias