------- Comment #6 from jvdelisle at gcc dot gnu dot org 2008-09-14 17:58 ------- I see that I did not use RESOLVE_TAG in gfc_resolve_dt. Doing so resolves the ICE issue. Then if we really want to accept this poorly written code, I think the place to fix it may be in io.c (resolve_tag)
@@ -2481,6 +2483,7 @@ gfc_resolve_dt (gfc_dt *dt) RESOLVE_TAG (&tag_e_round, dt->round); RESOLVE_TAG (&tag_e_blank, dt->blank); RESOLVE_TAG (&tag_e_decimal, dt->decimal); + RESOLVE_TAG (&tag_e_async, dt->asynchronous); e = dt->io_unit; if (gfc_resolve_expr (e) == SUCCESS -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35840