1use iso_c_binding 2implicit none 3 4type, bind(C) :: mytype1 5 integer(c_int) :: x 6 real(c_float) :: y 7end type mytype1 8 9type mytype2 10 sequence 11 integer :: x 12 real :: y 13end type mytype2 14 15type mytype3 16 integer :: x 17 real :: y 18end type mytype3 19 20type mytype4 21 sequence 22 integer, allocatable, dimension(:) :: x 23end type mytype4 24 25type mytype5 26 sequence 27 integer, pointer :: x 28 integer :: y 29end type mytype5 30 31type mytype6 32 sequence 33 type(mytype5) :: t 34end type mytype6 35 36type mytype7 37 sequence 38 type(mytype4) :: t 39end type mytype7 40 41common /a/ t1 42common /b/ t2 43common /c/ t3 ! { dg-error "has neither the SEQUENCE nor the BIND.C. attribute" } 44common /d/ t4 ! { dg-error "has an ultimate component that is allocatable" } 45common /e/ t5 46common /f/ t6 47common /f/ t7 ! { dg-error "has an ultimate component that is allocatable" } 48type(mytype1) :: t1 49type(mytype2) :: t2 50type(mytype3) :: t3 51type(mytype4) :: t4 52type(mytype5) :: t5 53type(mytype6) :: t6 54type(mytype7) :: t7 55end 56