http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47519
--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-01-28 20:00:31 UTC --- Paul, do you think one should do something alike in gfc_trans_allocate and in the intrinsic scalar/array assignment block? gfc_conv_intrinsic_len has: default: /* Anybody stupid enough to do this deserves inefficient code. */ ss = gfc_walk_expr (arg); gfc_init_se (&argse, se); if (ss == gfc_ss_terminator) gfc_conv_expr (&argse, arg); else gfc_conv_expr_descriptor (&argse, arg, ss); gfc_add_block_to_block (&se->pre, &argse.pre); gfc_add_block_to_block (&se->post, &argse.post); len = argse.string_length;