Skip to content

support for polymorphic types #60316

@mfvalin

Description

@mfvalin

compiler crashed with message
/dataCMC/my-llvm/flang/lib/Lower/CallInterface.cpp:854: not yet implemented: support for polymorphic types

is there a timeline estimate for said support (as well as C_LOC, LOC, ... support) ?
simple demo code :

module demo
  use ISO_C_BINDING
  implicit none
  interface
    subroutine BeStreamInit(stream, buffer) bind(C, name='BeStreamInit')
      import :: C_PTR
      implicit none
      type(C_PTR), intent(IN), value :: stream, buffer
    end subroutine
  end interface
  type :: c_bitstream
    integer(C_INT64_T) :: accum
  end type
  type :: le_stream
    type(c_bitstream) :: s
  contains
    procedure, PASS :: create => stream_create_le
  end type
contains
subroutine stream_create_le(self, mem)
  implicit none
  class(le_stream), intent(INOUT) :: self
  integer(C_INT32_T), dimension(*), intent(IN), target :: mem
  type(C_PTR) :: t, m
  t = transfer( LOC(self%s) , t)
  m = C_LOC(mem)
  call BeStreamInit(t, m)
end subroutine
end 

Metadata

Metadata

Assignees

No one assigned

    Labels

    flang:irquestionA question, not bug report. Check out https://llvm.org/docs/GettingInvolved.html instead!

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions