http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48887
--- Comment #2 from Daniel Kraft <domob at gcc dot gnu.org> 2011-05-27 10:59:01 UTC --- In match.c:select_type_set_tmp we have around line 4536: if (select_type_stack->selector->ts.type == BT_CLASS && CLASS_DATA (select_type_stack->selector)->attr.allocatable) gfc_add_allocatable (&tmp->n.sym->attr, NULL); else gfc_add_pointer (&tmp->n.sym->attr, NULL); Simply removing those gives ICEs in some SELECT TYPE test cases. In resolve.c:resolve_select_type around line 7937 (the resolve_assoc_var call), st->n.sym shows the respective attributes which lead to the problem later on. Note that it we simply use ASSOCIATE, the attributes are not set (as is expected and should be).