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]

Re: [Patch, fortran] [4.7/4.8 Regression] [OOP] ICE on invalid: gfc_variable_attr(): Bad array reference


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]