! { dg-do compile }
! PR 18990
! we used to ICE on these examples
module core
  type, public  :: T
     character(len=I)  :: str ! { dg-error "needs to be a constant specification expression" }
  end type T
  private
CONTAINS
  subroutine FOO(X)
    type(T), intent(in)          :: X
  end subroutine
end module core

module another_core
  type :: T
     character(len=*)  :: s ! { dg-error "needs to be a constant specification expr" }
  end type T
  private
CONTAINS
  subroutine FOO(X)
    type(T), intent(in)          :: X
  end subroutine
end module another_core

! { dg-final { cleanup-modules "core another_core" } }
