[Bug fortran/123782] False error in pointer to contiguous component selection
jvdelisle at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Jan 25 19:52:33 GMT 2026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123782
--- Comment #16 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
(In reply to Steve Kargl from comment #15)
> (In reply to Jerry DeLisle from comment #14)
> > Another tidbit I found is that the array a has the attribute TARGET but
> > subcomponents do not.
> >
> > So the c => a%x is invalid whereas c => a is valid. This has nothing to do
> > with contiguous.
> >
> > Regarding contiguous:
> >
> > Expression, Valid as RHS of => ?, Reason
> >
> > a, Yes, declared target
> > a(3:8), Yes, section of target array
> > obj, Yes, derived type variable with target
> > obj%comp, Yes, component of target variable
> > obj(4)%comp, Yes, same
> > obj%comp_array, No, whole component array — not TARGET
> > obj_array(:)%comp, No, very common mistake — same reason
> > local variable
> > without TARGET,No, compiler error
>
> Where did you get these tidbits? From Fortran 2018,
>
Internet search, one of the many chat sources. The only thing that's clear is
it's not clear. Probably a red herring.
> 8.5.17 TARGET attribute
> ...
> If an object has the TARGET attribute, then all of its nonpointer
> subobjects also have the TARGET attribute.
>
> 5.4.3.2.1 Data object classification
> ...
> A data object is either a constant, variable, or a subobject of a constant.
> ...
> Subobjects are portions of data objects that can be referenced and defined
> (variables only) independently of the other portions.
>
> program foo
> type a_t
> integer comp_array(5)
> end type a_t
> type(a_t), target :: obj
> integer, pointer :: x(:)
> obj%comp_array = [1, 2, 3, 4, 5]
> x => obj%comp_array
> print '(*(I0,1X))', x
> end program foo
>
> Am I missing something?
I don't think so. It did not make sense to me either. I am surprised at the
different interpretations one finds on these things. Regarding my other comment
on Simply Contiguous, I am re-reading the 2023 section on it.
More information about the Gcc-bugs
mailing list