! { dg-do compile } ! { dg-options "-O0 -fdump-tree-original" } ! PR 61968 - this used to generate invalid assembler containing ! TYPE(*). module testmod use iso_c_binding, only: c_size_t, c_int32_t, c_int64_t implicit none interface test procedure :: test_32 procedure :: test_array end interface test interface subroutine test_lib (a, len) bind(C, name="xxx") use iso_c_binding, only: c_size_t type(*), dimension(*) :: a integer(c_size_t), value :: len end subroutine end interface contains subroutine test_32 (a, len) type(*), dimension(*) :: a integer(c_int32_t), value :: len call test_lib (a, int (len, kind=c_size_t)) end subroutine subroutine test_array (a) use iso_c_binding, only: c_size_t class(*), dimension(..), target :: a call test_lib (a, int (sizeof (a), kind=c_size_t)) end subroutine end module subroutine test_32_ (a, len) use iso_c_binding, only: c_int32_t use testmod type(*), dimension(*) :: a integer(c_int32_t), value :: len call test (a, len) end subroutine ! { dg-final { scan-tree-dump-not "! __vtype_TYPE\\(*\\)" "original" } }