[Patch, fortran] PR58618 - Wrong code with character substring and ASSOCIATE

Paul Richard Thomas paul.richard.thomas@gmail.com
Thu Oct 18 10:10:00 GMT 2018


I do not think that there will be a PR for the ICE. This is a
regression introduced by my patch for PR70149 (September 30th). A
patch is attached. I will commit it as 'obvious' as soon as it has
finished regtesting. I will also commit the patch for PR58618 shortly
afterwards. Thanks for the review.

Paul

On Wed, 17 Oct 2018 at 22:17, Tobias Burnus <burnus@net-b.de> wrote:
>
> Hi Paul,
>
> Paul Richard Thomas wrote:
> > 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?
>
>
> I leave it to Dominique to search for a PR; otherwise, I believe the
> attach patch fixes the issue. – It just needs someone to package it with
> a test case, regtest and commit it.
>
>
> > Bootstrapped and regtested on FC28/x86_64 - OK for trunk?
>
> OK – thanks for the fix.
>
> Tobias
>
> > 2018-10-17  Paul Thomas  <pault@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  <pault@gcc.gnu.org>
> >
> >      PR fortran/58618
> >      * gfortran.dg/associate_45.f90 : New test.



-- 
"If you can't explain it simply, you don't understand it well enough"
- Albert Einstein
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ice.diff
Type: text/x-patch
Size: 1864 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20181018/2f0b1b03/attachment.bin>


More information about the Fortran mailing list