4 ! Check for errors when using abstract types in an inappropriate way.
10 TYPE, ABSTRACT, BIND(C) :: bindc_t ! { dg-error "must not be ABSTRACT" }
14 TYPE, ABSTRACT :: sequence_t ! { dg-error "must not be ABSTRACT" }
19 TYPE, ABSTRACT :: abst_t
23 TYPE, EXTENDS(abst_t) :: concrete_t
28 TYPE(abst_t) :: comp ! { dg-error "is of the ABSTRACT type 'abst_t'" }
32 TYPE, ABSTRACT, EXTENDS(concrete_t) :: again_abst_t
38 TYPE(abst_t) FUNCTION func () ! { dg-error "of the ABSTRACT type 'abst_t'" }
41 SUBROUTINE sub (arg) ! { dg-error "is of the ABSTRACT type 'again_abst_t'" }
43 TYPE(again_abst_t) :: arg
44 arg = again_abst_t () ! { dg-error "Can't construct ABSTRACT type 'again_abst_t'" }
48 IMPLICIT TYPE(abst_t) (a-z) ! { dg-error "ABSTRACT type 'abst_t' used" }