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? 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