https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92006
--- Comment #8 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- My draft of the standard says: the argument A shall be a data object of any type. If it is polymorphic it shall not be an undefined pointer. If it is unlimited polymorphic or has any deferred type parameters, it shall not be an unallocated allocatable variable or a disassociated or undefined pointer. AFAIU it does not say that unlimited polymorphic should be accessed through a select type, but I cannot see what would be the value otherwise.