Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29375 ディスカッション

Possible bug with non elemental final procedures

Igor666
初心者
1,329件の閲覧回数

The following code crashes with segmentation fault on `deallocate(copy)`:

module mytype_mod
  implicit none
  
  type :: mytype
    integer :: val
  contains
    final :: finalize_mytype
  end type

contains

  subroutine finalize_mytype(this)
    type(mytype), intent(inout) :: this
  end subroutine
end module



program test_prg
  use mytype_mod
  implicit none
  call test()

contains

  subroutine test()
    type(mytype), pointer :: main(:), copy(:)
    allocate(main(3))
    allocate(copy, source = main)
    deallocate(copy)
  end subroutine
end program

If I make the final procedure `elemental`, then it works. This also seems to have something to do with `source` and `pointer` attributes since I couldn't reproduce the crash without them. To the best of my knowledge, this code should be valid. Tested with ifort 19.0.3.199.

0 件の賞賛
2 返答(返信)
FortranFan
名誉コントリビューター III
1,312件の閲覧回数

This looks like a compiler bug to me.

If you're able to, please submit a support request at Intel OSC: https://supporttickets.intel.com/?lang=en-US

Igor666
初心者
1,306件の閲覧回数
返信