Ifx and ifort compilers fail to detect the out of bounds access for zero sized allocatable array.
Gfortran manages to detect it.
ifx version 2024.2.1
main.f90
program main
integer, allocatable :: a(:)
allocate(a(0))
a(2) = 5
write(*,*) size(a)
end programIfx fails to detect the error
ifx main.f90 -check all; ./a.out
0
Gfortran correctly detect the error
gfortran main.f90 --check=all; ./a.out
At line 6 of file main.f90
Fortran runtime error: Index '2' of dimension 1 of array 'a' above upper bound of 0
Error termination. Backtrace:
#0 0x7f3e38025cda in ???
#1 0x7f3e380267d9 in ???
#2 0x7f3e38026d69 in ???
#3 0x40131d in ???
#4 0x40140d in ???
#5 0x7f3e37c2a33f in ???
#6 0x7f3e37c2a408 in ???
#7 0x4010e4 in _start
at ../sysdeps/x86_64/start.S:115
#8 0xffffffffffffffff in ???
1 解答
It is a known bug CMPLRLLVM-59156 which has already been fixed. The fix will be available in a future release.
链接已复制
7 回复数
It is a known bug CMPLRLLVM-59156 which has already been fixed. The fix will be available in a future release.
I have run into this problem with Intel Fortran oneAPI 2025.0.0. Has this become available in the current version?
Thanks, I was wondering as the original post about it having been fixed was from before 2025.0.0.
It compiles without complaint, but will not run, nor if I make a(10) will it run
D:\Projects>ifx /check:all t.f90
Intel(R) Fortran Compiler for applications running on Intel(R) 64, Version 2025.2.0 Build 20250605
Copyright (C) 1985-2025 Intel Corporation. All rights reserved.
Microsoft (R) Incremental Linker Version 14.43.34809.0
Copyright (C) Microsoft Corporation. All rights reserved.
-out:t.exe
-subsystem:console
t.obj
D:\Projects>t.exe
forrtl: severe (408): fort: (10): Subscript #1 of the array A has value 2 which is greater than the upper bound of 0
Image PC Routine Line Source
t.exe 00007FF6B8E912C3 Unknown Unknown Unknown
t.exe 00007FF6B8E98D6B Unknown Unknown Unknown
t.exe 00007FF6B8EC95C0 Unknown Unknown Unknown
KERNEL32.DLL 00007FFD726DE8D7 Unknown Unknown Unknown
ntdll.dll 00007FFD7403C34C Unknown Unknown Unknown
D:\Projects>