Hi Dominique,

Thanks for picking that up. For some reason that I do now see, the
regression is caused by the component references. The frontend
temporary is picking up the deferred tag from somewhere, even though
it is not set. Anyway, all is well if the patch is restricted to
character right hand side symbols. I have added a test for the
regression to the testcase.

OK for trunk?

Paul

On Fri, 19 Oct 2018 at 23:15, Dominique d'Humières <domi...@lps.ens.fr> wrote:
>
> Reduced test
>
> ! { dg-do compile }
> MODULE TN4
>   IMPLICIT NONE
>   PRIVATE
>   INTEGER,PARAMETER::SH4=KIND('a')
>   TYPE,PUBLIC::TOP
>     CHARACTER(:,KIND=SH4),ALLOCATABLE::ROR
>     CHARACTER(:,KIND=SH4),ALLOCATABLE::VI8
>   CONTAINS
>     PROCEDURE,NON_OVERRIDABLE::SB=>TPX
>   END TYPE TOP
> CONTAINS
>   SUBROUTINE TPX(TP6,PP4,BA3)
>     CLASS(TOP),INTENT(INOUT)::TP6
>     INTEGER,INTENT(IN)::PP4
>     TYPE(TOP),INTENT(OUT)::BA3
>     BA3%ROR=TP6%ROR(PP4:)
>     BA3%VI8=TP6%ROR(PP4:)
>     TP6%ROR=TP6%ROR(:PP4-1)
>     TP6%VI8=TP6%ROR(:PP4-1)
>   END SUBROUTINE TPX
> END MODULE TN4
> ! https://groups.google.com/forum/#!topic/comp.lang.fortran/nV3TlRlVKBc
>
> TIA
>
> Dominique
>
> > Le 19 oct. 2018 à 23:39, Dominique d'Humières <domi...@lps.ens.fr> a écrit :
> >
> > Hi Paul,
> >
> > I get a regression with your patch:
> >
> > obfuscated_tn4.f90:300:0:
> >
> >  300 |     TP6%ROR=TP6%ROR(:PP4-1)
> >      |
> > internal compiler error: in gfc_trans_deferred_vars, at 
> > fortran/trans-decl.c:4754
> >
> >
> > I’ll try to reduce the test.
> >
> > Dominique
> >
>


-- 
"If you can't explain it simply, you don't understand it well enough"
- Albert Einstein

Reply via email to