| use iso_c_binding |
| implicit none |
| |
| type, bind(C) :: mytype1 |
| integer(c_int) :: x |
| real(c_float) :: y |
| end type mytype1 |
| |
| type mytype2 |
| sequence |
| integer :: x |
| real :: y |
| end type mytype2 |
| |
| type mytype3 |
| integer :: x |
| real :: y |
| end type mytype3 |
| |
| type mytype4 |
| sequence |
| integer, allocatable, dimension(:) :: x |
| end type mytype4 |
| |
| type mytype5 |
| sequence |
| integer, pointer :: x |
| integer :: y |
| end type mytype5 |
| |
| type mytype6 |
| sequence |
| type(mytype5) :: t |
| end type mytype6 |
| |
| type mytype7 |
| sequence |
| type(mytype4) :: t |
| end type mytype7 |
| |
| common /a/ t1 |
| common /b/ t2 |
| common /c/ t3 ! { dg-error "has neither the SEQUENCE nor the BIND.C. attribute" } |
| common /d/ t4 ! { dg-error "has an ultimate component that is allocatable" } |
| common /e/ t5 |
| common /f/ t6 |
| common /f/ t7 ! { dg-error "has an ultimate component that is allocatable" } |
| type(mytype1) :: t1 |
| type(mytype2) :: t2 |
| type(mytype3) :: t3 |
| type(mytype4) :: t4 |
| type(mytype5) :: t5 |
| type(mytype6) :: t6 |
| type(mytype7) :: t7 |
| end |