- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Using ifx --version
ifx (IFX) 2023.1.0 20230320
the following code leads to an ICE upon compilation,
module m
implicit none
private
type :: parameter_t
private
class(data_t), pointer :: data => null ()
end type parameter_t
type, abstract :: data_t
private
contains
procedure :: get_real_ptr => data_get_real_ptr
end type data_t
type, extends (data_t) :: real_t
private
real :: value
end type real_t
type, extends (data_t) :: complex_t
private
complex :: value
end type complex_t
type :: t1_t
private
type(parameter_t), dimension(:), allocatable :: par
type(real_t), dimension(:), pointer :: par_real => null ()
type(complex_t), dimension(:), pointer :: par_complex => null ()
contains
procedure :: set => t1_set
procedure :: get_par_real_ptr => t1_get_par_real_ptr_index
end type t1_t
interface
module function data_get_real_ptr (par) result (ptr)
class(data_t), intent(in), target :: par
real, pointer :: ptr
end function data_get_real_ptr
module function t1_get_par_real_ptr_index (t1, i) result (ptr)
class(t1_t), intent(inout) :: t1
integer, intent(in) :: i
class(data_t), pointer :: ptr
end function t1_get_par_real_ptr_index
end interface
contains
subroutine t1_set (t1, i, value)
class(t1_t), intent(inout), target :: t1
integer, intent(in) :: i
real, intent(in) :: value
class(data_t), pointer :: par_data
real, pointer :: value_ptr
par_data => t1%get_par_real_ptr (i)
!!! triggers the ICE
value_ptr => par_data%get_real_ptr ()
end subroutine t1_set
end module m
1 Solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for reporting this. I just tried your reproducer with the compiler that will be available in mid-2023. The ICE is gone!
I'll let you know when it's available.
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for reporting this. I just tried your reproducer with the compiler that will be available in mid-2023. The ICE is gone!
I'll let you know when it's available.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I just successfully compiled the code that previously ICEd with the ifx version that will be available in a few weeks. The compiler is part of oneAPI HPC Toolkit 2023.2.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page