Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
26746 Discussions

Possible bug with non elemental final procedures

Igor666
Novice
225 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 II
208 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

Igor666
Novice
202 Views
Reply