On Fri, 6 May 2016, Richard Biener wrote: > > The following patch fixes another case of missing DECL_EXPR in the FE. > > Bootstrapped on x86_64-unknown-linux-gnu, testing in progress. > > Ok for trunk?
Dominique noticed a FAIL early which is fixed by adjusting the patch to only handle TYPE_DECL TYPE_NAME like so: Index: gcc/fortran/trans-decl.c =================================================================== --- gcc/fortran/trans-decl.c (revision 235945) +++ gcc/fortran/trans-decl.c (working copy) @@ -3818,6 +3818,12 @@ gfc_trans_vla_type_sizes (gfc_symbol *sy } gfc_trans_vla_type_sizes_1 (type, body); + /* gfc_build_qualified_array may have built this type but left TYPE_NAME + pointing to the original type whose type sizes we need to expose to + the gimplifier unsharing. */ + if (TYPE_NAME (type) + && TREE_CODE (TYPE_NAME (type)) == TYPE_DECL) + gfc_add_expr_to_block (body, build1 (DECL_EXPR, type, TYPE_NAME (type))); } I've re-started testing. Ok with that change? Thanks, Richard. > Thanks, > Richard. > > 2016-05-06 Richard Biener <rguent...@suse.de> > > PR fortran/70937 > * trans-decl.c (gfc_trans_vla_type_sizes): Add a DECL_EXPR for > the TYPE_DECL as well. > > * gfortran.dg/pr70937.f90: New testcase. > > Index: gcc/fortran/trans-decl.c > =================================================================== > *** gcc/fortran/trans-decl.c (revision 235945) > --- gcc/fortran/trans-decl.c (working copy) > *************** gfc_trans_vla_type_sizes (gfc_symbol *sy > *** 3818,3823 **** > --- 3818,3828 ---- > } > > gfc_trans_vla_type_sizes_1 (type, body); > + /* gfc_build_qualified_array may have built this type but left TYPE_NAME > + pointing to the original type whose type sizes we need to expose to > + the gimplifier unsharing. */ > + if (TYPE_NAME (type)) > + gfc_add_expr_to_block (body, build1 (DECL_EXPR, type, TYPE_NAME > (type))); > } > > > Index: gcc/testsuite/gfortran.dg/pr70937.f90 > =================================================================== > *** gcc/testsuite/gfortran.dg/pr70937.f90 (revision 0) > --- gcc/testsuite/gfortran.dg/pr70937.f90 (working copy) > *************** > *** 0 **** > --- 1,10 ---- > + ! { dg-do compile } > + ! { dg-options "-flto" } > + SUBROUTINE dbcsr_test_read_args(narg, args) > + CHARACTER(len=*), DIMENSION(:), & > + INTENT(out) :: args > + CHARACTER(len=80) :: line > + DO > + args(narg) = line > + ENDDO > + END SUBROUTINE dbcsr_test_read_args > -- Richard Biener <rguent...@suse.de> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)