http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47768

--- Comment #2 from janus at gcc dot gnu.org 2011-02-16 22:22:03 UTC ---
(In reply to comment #1)
> (In reply to comment #0)
> > Adding a data pointer component leads to rejection:
> > 
> > print *,x
> >          1
> > Error: Data transfer element at (1) cannot have POINTER components
> > 
> > So I'm guessing the version with proc-pointer is also illegal (haven't 
> > checked
> > the standard).
> 
> I have the feeling we reject too much here. F08 says in chapter 9.6.3:
> 
> "If an output item is a pointer, it shall be associated with a target and data
> are transferred from the target to the file."
> 
> I think this is the same in F03 and F95.
> So, it seems like pointers are ok (but should be associated), unless I'm
> missing something.

I indeed missed something. Further down in 9.6.3 one finds:

"If a derived-type list item is not processed by a defined input/output
procedure and is not treated as a list of its individual components, all the
subcomponents of that list item shall be accessible in the scoping unit
containing the input/output statement and shall not be pointers or
allocatable."

So, pointer components are indeed forbidden. All that's left to do here is to
also reject procedure pointers and procedure pointer components.

Reply via email to