| ! { dg-do compile } |
| ! |
| ! PR 40940: CLASS statement |
| ! |
| ! Contributed by Janus Weil <janus@gcc.gnu.org> |
| |
| use,intrinsic :: iso_c_binding |
| |
| type t1 |
| integer :: comp |
| end type |
| |
| type t2 |
| sequence |
| real :: r |
| end type |
| |
| type,bind(c) :: t3 |
| integer(c_int) :: i |
| end type |
| |
| type :: t4 |
| procedure(absint), pointer :: p ! { dg-error "Non-polymorphic passed-object dummy argument" } |
| end type |
| |
| type :: t5 |
| class(t1) :: c ! { dg-error "must be allocatable or pointer" } |
| end type |
| |
| abstract interface |
| subroutine absint(arg) |
| import :: t4 |
| type(t4) :: arg |
| end subroutine |
| end interface |
| |
| type t6 |
| integer :: i |
| class(t6), allocatable :: foo ! { dg-error "must have the POINTER attribute" } |
| end type t6 |
| |
| |
| class(t1) :: o1 ! { dg-error "must be dummy, allocatable or pointer" } |
| |
| class(t2), pointer :: o2 ! { dg-error "is not extensible" } |
| class(t3), pointer :: o3 ! { dg-error "is not extensible" } |
| |
| end |
| |