------- Comment #2 from kargl at gcc dot gnu dot org 2008-12-11 20:17 ------- For some reason, init_flag in gfc_match_iterator is set to zero. So when the matcher hits
m = init_flag ? gfc_match_init_expr (&e1) : gfc_match_expr (&e1); gfc_match_expr() is executed instead of gfc_match_init_expr(). By forcibly set init_flag=1 in gdb, gfortran then generates % gfc4x -c pr35778.f90 pr35779.f90:2.43: integer,PARAMETER :: I2(10) = (/ (J1, J1=its_bad,1,-1) /) 1 Error: Parameter 'its_bad' at (1) has not been declared or is a variable, which does not reduce to a constant expression Still hunting for a place to properly set init_flag. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35779