! RUN: %python %S/test_errors.py %s %flang_fc1 -pedantic ! Check for C1801 - C1805 module m public s !ERROR: Interoperable array must have at least one element real, bind(c) :: x(0) contains subroutine s end end program main use m type, abstract :: v integer :: i end type ! ERROR: A derived type with the BIND attribute cannot have the SEQUENCE attribute type, bind(c) :: t1 sequence integer :: x end type ! ERROR: A derived type with the BIND attribute has type parameter(s) type, bind(c) :: t2(k) integer, KIND :: k integer :: x end type ! ERROR: A derived type with the BIND attribute cannot extend from another derived type type, bind(c), extends(v) :: t3 integer :: x end type type, bind(c) :: t4 integer :: x contains ! ERROR: A derived type with the BIND attribute cannot have a type bound procedure procedure, nopass :: b => s end type ! WARNING: A derived type with the BIND attribute is empty type, bind(c) :: t5 end type type, bind(c) :: t6 ! ERROR: A derived type with the BIND attribute cannot have a pointer or allocatable component integer, pointer :: x end type type, bind(c) :: t7 ! ERROR: A derived type with the BIND attribute cannot have a pointer or allocatable component integer, allocatable :: y end type type :: t8 integer :: x end type type, bind(c) :: t9 !ERROR: Component 'y' of an interoperable derived type must have the BIND attribute type(t8) :: y integer :: z end type type, bind(c) :: t10 !WARNING: A CHARACTER component of a BIND(C) type should have length 1 character(len=2) x end type type, bind(c) :: t11 !ERROR: Each component of an interoperable derived type must have an interoperable type character(kind=2) x end type type, bind(c) :: t12 !PORTABILITY: A LOGICAL component of a BIND(C) type should have the interoperable KIND=C_BOOL logical(kind=8) x end type type, bind(c) :: t13 !ERROR: Each component of an interoperable derived type must have an interoperable type real(kind=2) x end type type, bind(c) :: t14 !ERROR: Each component of an interoperable derived type must have an interoperable type complex(kind=2) x end type type, bind(c) :: t15 !ERROR: An array component of an interoperable type must have at least one element real :: x(0) end type end