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

ICE with IFX using procedure pointers

mhulsen
Novice
641 Views

Hi,

The attached file gives an ICE with ifx, version: (IFORT) 2023.0.0 20221201. The output is at the end of this message.

Note, that it is a very much reduced code starting from a large code and maybe it can be reduced even further, but at least it gives the same error message as the large code.

It compiles fine with ifort, gfortran and nagfor.

Martien

 

The output is:

[tfemuser@080a0116f9cd ifx-ice]$ ifx -c ifx-ice.f90 

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1f563ca]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1bef70e]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1c55e52]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1c55e26]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1b69946]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1b6f2d1]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1b73215]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1be1b73]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1be09c3]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1ca3eed]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1ca4500]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1ca6a30]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1ca3eed]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1ca4500]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1ca19c2]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1ca3eed]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1ca104a]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1ca3eed]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1b44bf6]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1b445c9]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1d028ee]

/lib64/libc.so.6(+0x27510)[0x150e660e4510]

/lib64/libc.so.6(__libc_start_main+0x89)[0x150e660e45c9]

/opt/intel/oneapi/compiler/2023.0.0/linux/bin-llvm/xfortcom[0x1982da9]

 

ifx-ice.f90(75): error #5623: **Internal compiler error: internal abort** Please report this error along with the circumstances in which it occurred in a Software Problem Report.  Note: File and line given may not be explicit cause of this error.

    call evaluate_scalar_coefficient ( func=coefficients%func1(3)%p )

---------^

compilation aborted for ifx-ice.f90 (code 3)

 

0 Kudos
6 Replies
Ron_Green
Moderator
633 Views

Thanks for finding this and reporting.  I'll open a bug report.

0 Kudos
Ron_Green
Moderator
621 Views

Bug ID is CMPLRLLVM-43357


0 Kudos
martinmath
New Contributor I
521 Views

Below is a short reproducer, which is by the look of it, caused by the same bug in ifx, causing an ICE.

 

program proc_pointer

type :: t
   procedure(answer), nopass, pointer :: p
end type t

type(t) :: x

x%p => answer
call foo(x%p)

contains

   function answer() result(x)
      integer :: x
      x = 42
   end function answer

   subroutine foo(a)
      procedure(answer) :: a
      print *,a()
   end subroutine foo

end program proc_pointer
0 Kudos
mhulsen
Novice
410 Views

The bug seems to be fixed in 2023 update 1. My finite element code of near 100000 loc passes all my tests with ifx now.

Thanks for the fix.

Martien

Barbara_P_Intel
Moderator
489 Views

I added the new reproducer to the bug report. Sometimes these bugs are tricky and may not have the same cause. We will see!

0 Kudos
Ron_Green
Moderator
176 Views

this bug is fixed in the 2024.0 release


0 Kudos
Reply