Hi, this patch is a basic implementation of ABSTRACT types (but no DEFERRED procedure bindings). It parses and remembers the ABSTRACT attribute for derived-type symbols and checks that no symbol/component is of TYPE(t) with t being ABSTRACT, no structure constructor for an ABSTRACT type is invoked and no IMPLICIT statement uses an ABSTRACT type. For the IMPLICIT check, I added logic to remember the loci of all IMPLICIT statements to allow a nice diagnostic message to be printed. In gfc_match_structure_constructor, the tail->val = NULL initialization fixes a double-free problem I stumbled across, if anyone wonders :) I thought about using gfc_use_derived for the ABSTRACT check, but this seemed not to work in all cases as I would have liked it to and additionally I like the check during resolution much better; and it gives IMHO better diagostics for ABSTRACT types in IMPLICIT statements. I hope this is ok so. What do you think about this patch? I'm at the moment regression testing on GNU/Linux-x86-32 and hopefully no regressions have crept in... Thanks, Daniel