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

ICE with a program testing the BLOCK construct

Arjen_Markus
Honored Contributor II
1,901 Views

I was experimenting with a set of test programs I received. The one I have attached works with gfortran, but with ifx 2025.0.0 I get an ICE:

 

ifx t_block_export.f90
Intel(R) Fortran Compiler for applications running on Intel(R) 64, Version 2025.0.0 Build 20241008
Copyright (C) 1985-2024 Intel Corporation. All rights reserved.

 #0 0x00007ff6da87370a (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x187370a)
 #1 0x00007ff6da5529da (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x15529da)
 #2 0x00007ff6da7b35e7 (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x17b35e7)
 #3 0x00007ff6da7ea3c6 (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x17ea3c6)
 #4 0x00007ff6da8227ae (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x18227ae)
 #5 0x00007ff6da81d325 (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x181d325)
 #6 0x00007ff6da81b6a1 (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x181b6a1)
 #7 0x00007ff6da81ae0a (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x181ae0a)
 #8 0x00007ff6da8bdc5e (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x18bdc5e)
 #9 0x00007ff6da8be0b6 (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x18be0b6)
#10 0x00007ff6da8b9c90 (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x18b9c90)
#11 0x00007ff6da8bdc5e (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x18bdc5e)
#12 0x00007ff6da8be0b6 (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x18be0b6)
#13 0x00007ff6da8c31a7 (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x18c31a7)
#14 0x00007ff6da8bdc5e (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x18bdc5e)
#15 0x00007ff6da8bb3dd (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x18bb3dd)
#16 0x00007ff6da8bdc5e (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x18bdc5e)
#17 0x00007ff6da793f84 (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x1793f84)
#18 0x00007ff6da54ac8e (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x154ac8e)
#19 0x00007ff6d96f0673 (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x6f0673)
#20 0x00007ff6da279740 (C:\PROGRA~2\Intel\oneAPI\compiler\latest\bin\compiler\xfortcom.exe+0x1279740)
#21 0x00007fff78c2e8d7 (C:\WINDOWS\System32\KERNEL32.DLL+0x2e8d7)
#22 0x00007fff7a23c5dc (C:\WINDOWS\SYSTEM32\ntdll.dll+0x9c5dc)

t_block_export.f90(144): 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 invoke_f(i_f,2,"Inside BLOCK")
-------------------------^
compilation aborted for t_block_export.f90 (code 3)

It is meant to check for compiler characteristics and quirks, but that does not mean the compiler should produce an ICE :).

0 Kudos
4 Replies
JohnNichols
Valued Contributor III
1,612 Views

Screenshot 2025-06-26 111031.png

IFX 2025.2 with latest VS 2022 preview.  

errors on compile

JohnNichols_0-1750954384457.png

 

0 Kudos
JFH
New Contributor I
1,347 Views

The original program did not use IMPLICIT NONE and so it was not always clear whether some variables were intended to be local to the block in which they were given attributes.
I failed to find anything in the standard allowing a variable global to a block to be given a new attribute inside the block, and so I think a variable must be given all its attributes like SAVE or DIMENSION in the same group of specification statements. It seems that four compiler-writers agree. The following program using SAVE was rejected with revealing error messages by ifx 2025.1, gfortran, lfortran and AMD flang. Using DIMENSION gave analogous results. (I have not yet been able to install ifx 2025.2.)
```
(lf) john:~/Gstd23/later$ cat savetest.f90
program savetest ! savetest.f90
! Can a variable global to a block be given an attribute in that block?
implicit none
integer n
BLOCK
SAVE n
n = 42
print "(A,I0)",'Inside the block n = ',n
END BLOCK
print "(A,I0)",'After the block n = ',n
end program savetest
(lf) john:~/Gstd23/later$ ifx savetest.f90
+ compiler=/home/john/intel/oneapi/compiler/2025.1/bin/ifx
+ /home/john/intel/oneapi/compiler/2025.1/bin/ifx -standard-semantics -g savetest.f90
ifx: remark #10440: Note that use of a debug option without any optimization-level option will turnoff most compiler optimizations similar to use of '-O0'
savetest.f90(7): error #6404: This name does not have a type, and must have an explicit type. [N]
n = 42
----^
compilation aborted for savetest.f90 (code 1)
(lf) john:~/Gstd23/later$

0 Kudos
Arjen_Markus
Honored Contributor II
1,238 Views

It is intentionally imperfect :). But the real problem is the ICE.

0 Kudos
JohnNichols
Valued Contributor III
1,019 Views

My run shows it runs on latest ONEAPI == update.

0 Kudos
Reply