56 lines
985 B
Fortran
56 lines
985 B
Fortran
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
|