- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear all,
the current Intel compiler (ifort (IFORT) 2021.4.0 20210910 on x86_64.Linux) produces a badly behaving binary for the code below. The code is, as far as I can judge, standard conforming, but when executing the produced binary, I get a run-time error and the code stops.
module test
implicit none
type :: base_t
end type base_t
type, extends(base_t) :: extended_t
integer :: ii
end type extended_t
contains
subroutine pop(item)
class(base_t), allocatable, intent(inout) :: item
class(base_t), allocatable :: buffer
call move_alloc(item, buffer)
end subroutine pop
end module test
program testprog
use test
implicit none
class(base_t), allocatable :: base
base = extended_t(41)
call pop(base)
base = extended_t(42)
print *, "DONE"
end program testprog
The resulting binary stops with the run-time error
forrtl: severe (122): invalid attempt to assign into a pointer that is not associated
Image PC Routine Line Source
a.out 0000000000407A56 Unknown Unknown Unknown
a.out 0000000000403FA2 Unknown Unknown Unknown
a.out 0000000000403862 Unknown Unknown Unknown
libc-2.31.so 00007F5C8FC1E0B3 __libc_start_main Unknown Unknown
a.out 000000000040376E Unknown Unknown Unknown
Interestingly, when I comment out the pop() call, the program runs without errors, so I guess, something bad happens to the descriptor of base, when it is passed forth and back in the call.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Actually, it seems, that it is the move_alloc(), which leaves the descriptor in a bad state. The following simplified example generates the same behavior:
program testprog
implicit none
type :: base_t
end type base_t
type, extends(base_t) :: extended_t
integer :: ii
end type extended_t
class(base_t), allocatable :: base, buffer
base = extended_t(41)
call move_alloc(base, buffer)
base = extended_t(42)
print *, "DONE"
end program testprog
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for the report. This issue is now escalated to compiler engineering.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This issue has been fixed in the current oneAPI 2023.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page