Just to now forget ... To the patch to PR 32156, Paul Thomas wrote in http://gcc.gnu.org/ml/fortran/2007-05/msg00531.html :
"There is something not right with string concatenation in the front-end that fails to transmit the string length correctly. I have made several attempts to get to the bottom of this and have completely failed. " Test case, see PR 32156 and revert the "hack" (see urls and patch at the bottom) . Commits: http://gcc.gnu.org/ml/gcc-cvs/2007-05/msg00956.html http://gcc.gnu.org/ml/gcc-cvs/2007-05/msg00955.html Comment in the patch: - ss->expr->ts.cl->backend_decl = ss->string_length; + /* It is surprising but still possible to wind up with expressions that + lack a character length. + TODO Find the offending part of the front end and cure this properly. + Concatenation involving arrays is the main culprit. */ + if (!ss->expr->ts.cl) + { + ss->expr->ts.cl = gfc_get_charlen (); + ss->expr->ts.cl->next = gfc_current_ns->cl_list; + gfc_current_ns->cl_list = ss->expr->ts.cl->next; + } -- Summary: Ensure that ss->string_length is always set [TODO item] Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: burnus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32179