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