https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88117
--- Comment #5 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- Rather, the problem seems to be somewhere in trans-expr.c: if (expr1->ts.deferred && gfc_check_dependency (expr1, expr2, true)) rse.string_length = gfc_evaluate_now (rse.string_length, &rse.pre); The variable created by gfc_evaluate_now here is D.3908, the culprit for gimplification in the simplified test case. Hmm...