Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

ICE on generic type bound procedure

BalintAradi
Novice
247 Views

Dear Intel Team,

I obtain an internal compiler error with ifort when using generic type bound procedures in an involved scenario. As far as I can judge, the code is standard conforming and other compilers (NAG, GNU) have no problem to process it. Below, the minimal working example, I could not simplify it any further without making the bug vanish.

I am using ifort (IFORT) 2021.7.1 20221019 on x86_64/Linux.

module testmod_basetypes
  implicit none

  type :: suite_base
  contains
    procedure :: add_test_array => suite_base_add_test_array
    generic :: add_test => add_test_array
  end type suite_base

  type, extends(suite_base) :: serial_suite_base
  end type serial_suite_base

  type, extends(serial_suite_base) :: serial_suite
  end type serial_suite

  interface serial_suite
    module procedure new_serial_suite
  end interface serial_suite

contains

  subroutine suite_base_add_test_array(this)
    class(suite_base), intent(inout) :: this
  end subroutine suite_base_add_test_array


  function new_serial_suite() result(this)
    type(serial_suite) :: this
  end function new_serial_suite

end module testmod_basetypes


module testmod_handover
  use testmod_basetypes, only : suite_base, serial_suite
  implicit none
end module testmod_handover


module testmod_crashing
  use testmod_handover, only : suite_base, serial_suite
  implicit none

contains

  subroutine test()
    type(serial_suite) :: suite
    call suite%add_test()
  end subroutine test

end module testmod_crashing

 

 

0 Kudos
1 Reply
Barbara_P_Intel
Moderator
194 Views

Thank you for reporting this with such a nice reproducer! I reported it to the Fortran compiler team with bug id CMPLRLLVM-42051. I'll let you know when a fix is on the way!



0 Kudos
Reply