http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58593
--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> --- (In reply to Tobias Burnus from comment #1) > Glancing a the code, I don't see why it fails. Shot into the dark: --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -2359,4 +2359,4 @@ gfc_conv_string_tmp (gfc_se * se, tree type, tree len) tmp = TREE_TYPE (type); - gcc_assert (TREE_CODE (tmp) == ARRAY_TYPE); - tmp = TYPE_SIZE_UNIT (TREE_TYPE (tmp)); + if (TREE_CODE (tmp) == ARRAY_TYPE) + tmp = TYPE_SIZE_UNIT (TREE_TYPE (tmp)); tmp = fold_build2_loc (input_location, MULT_EXPR, size_type_node,