https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69604
Harald Anlauf <anlauf at gmx dot de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |anlauf at gmx dot de --- Comment #3 from Harald Anlauf <anlauf at gmx dot de> --- (In reply to Gerhard Steinmetz from comment #0) Adding -std=f2008 to the command line gives additional hints for the reasons of failure: > $ cat z1.f90 > program p > x(n) = n() > print *, x(n) > end pr69604-z1.f90:2:13: x(n) = n() 1 Warning: Obsolescent feature: Statement function at (1) pr69604-z1.f90:3:0: print *, x(n) internal compiler error: in gfc_add_modify_loc, at fortran/trans.c:159 0x82f7280 gfc_add_modify_loc(unsigned int, stmtblock_t*, tree_node*, tree_node*) ../../trunk/gcc/fortran/trans.c:158 0x82f72e9 gfc_add_modify(stmtblock_t*, tree_node*, tree_node*) ../../trunk/gcc/fortran/trans.c:170 0x834d588 gfc_conv_statement_function ../../trunk/gcc/fortran/trans-expr.c:6487 0x834d588 gfc_conv_function_expr ../../trunk/gcc/fortran/trans-expr.c:6558 [traceback intentionally truncated] and similarly for case z2, but not z4. So z1 and z2 are possibly related, but not z4.