Paul Richard Thomas
2018-10-17 10:32:46 UTC
This problem concerned associate targets being substrings. It turns
out that they are returned as pointer types (with a different cast for
unity based substrings ***sigh***) and so can be assigned directly to
the associate name. The patch quite simply removed the condition that
such targets be allocatable, pointer or dummy.
I noticed in the course of working up the testcase that
character (:), pointer :: ptr => NULL()
character (6), target :: tgt = 'lmnopq'
ptr => tgt
print *, len (ptr), ptr
end
ICEs on the NULL initialization of the pointer but works fine if this
is removed. Has this already been posted as a PR?
Bootstrapped and regtested on FC28/x86_64 - OK for trunk?
Paul
2018-10-17 Paul Thomas <***@gcc.gnu.org>
PR fortran/58618
* trans-stmt.c (trans_associate_var): All strings that return
as pointer types can be assigned directly to the associate
name so remove 'attr' and the condition that uses it.
2018-10-17 Paul Thomas <***@gcc.gnu.org>
PR fortran/58618
* gfortran.dg/associate_45.f90 : New test.
out that they are returned as pointer types (with a different cast for
unity based substrings ***sigh***) and so can be assigned directly to
the associate name. The patch quite simply removed the condition that
such targets be allocatable, pointer or dummy.
I noticed in the course of working up the testcase that
character (:), pointer :: ptr => NULL()
character (6), target :: tgt = 'lmnopq'
ptr => tgt
print *, len (ptr), ptr
end
ICEs on the NULL initialization of the pointer but works fine if this
is removed. Has this already been posted as a PR?
Bootstrapped and regtested on FC28/x86_64 - OK for trunk?
Paul
2018-10-17 Paul Thomas <***@gcc.gnu.org>
PR fortran/58618
* trans-stmt.c (trans_associate_var): All strings that return
as pointer types can be assigned directly to the associate
name so remove 'attr' and the condition that uses it.
2018-10-17 Paul Thomas <***@gcc.gnu.org>
PR fortran/58618
* gfortran.dg/associate_45.f90 : New test.