Hi all, here is a small patch for a ICE-on-valid regression. Regtested on x86_64-unknown-linux-gnu. Ok for trunk/4.8/4.7?
Cheers, Janus 2014-02-16 Janus Weil <ja...@gcc.gnu.org> PR fortran/55907 * resolve.c (build_default_init_expr): Don't initialize character variable if -fno-automatic is given. 2014-02-16 Janus Weil <ja...@gcc.gnu.org> PR fortran/55907 * gfortran.dg/init_flag_12.f90: New.
Index: gcc/fortran/resolve.c =================================================================== --- gcc/fortran/resolve.c (revision 207804) +++ gcc/fortran/resolve.c (working copy) @@ -10530,7 +10530,7 @@ build_default_init_expr (gfc_symbol *sym) init_expr = NULL; } if (!init_expr && gfc_option.flag_init_character == GFC_INIT_CHARACTER_ON - && sym->ts.u.cl->length) + && sym->ts.u.cl->length && gfc_option.flag_max_stack_var_size != 0) { gfc_actual_arglist *arg; init_expr = gfc_get_expr ();
! { dg-do compile } ! { dg-options "-fno-automatic -finit-local-zero" } ! ! PR 55907: [4.7/4.8/4.9 Regression] ICE with -fno-automatic -finit-local-zero ! ! Contributed by J.R. Garcia <garcia.espinosa...@gmail.com> subroutine cchaine (i) implicit none integer :: i character(len=i) :: chaine write(*,*) chaine end subroutine