! { dg-do compile } ! Tests a number of error messages relating to derived type objects ! in common blocks. Originally due to PR 33198 subroutine one type a sequence integer :: i = 1 end type a type(a) :: t ! { dg-error "Derived type variable .t. in COMMON at ... may not have default initializer" } common /c/ t end subroutine first type a integer :: i integer :: j end type a type(a) :: t ! { dg-error "Derived type variable .t. in COMMON at ... has neither the SEQUENCE nor the BIND.C. attribute" } common /c/ t end subroutine prime type a sequence integer, allocatable :: i(:) integer :: j end type a type(a) :: t ! { dg-error "Derived type variable .t. in COMMON at ... has an ultimate component that is allocatable" } common /c/ t end subroutine source parameter(x=0.) ! { dg-error "COMMON block .x. at ... is used as PARAMETER at ..." } common /x/ i ! { dg-error "COMMON block .x. at ... is used as PARAMETER at ..." } intrinsic sin common /sin/ j ! { dg-error "COMMON block .sin. at ... is also an intrinsic procedure" } end subroutine source