This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran 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] | |
According to the standard, "A part-name to the right of a part-ref with
nonzero rank shall not have the ALLOCATABLE or POINTER attribute." (F2003 draft
standard, page 105, lines 12-13).
Currently we accept it for ALLOCATABLEs for some cases (e.g. as procedure
arguments, and in WHEREs), but get ICEs for other cases (e.g. plain
array assignments).
The question now is what we should do about this. We could
(a) Allways reject (attached patch does that).
(b) Accept it as an extension. Those cases that don't work can be
implemented eventually (I can open a PR). This would be a nice
extension, but it has the downside that it could get quite
complicated. I haven't thought a lot about it, but I guess that
e.g.
p => x(:)%y(1)
where y is an allocatable component, is somewhere between
difficult and impossible to implement.
(c) Like (b), but reject the most difficult cases.
Perhaps we could do (a) for 4.2, and (c) for 4.3? Opinions?
Erik
Attachment:
obv.diff
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |