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

Possible bug with non elemental final procedures

Igor666
Novice
825 Views

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 Kudos
2 Replies
FortranFan
Honored Contributor III
808 Views

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

0 Kudos
Igor666
Novice
802 Views
0 Kudos
Reply