- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The following example causes an "error #5623: Internal compiler error: internal abort" with the latest Intel ifx compiler (2024.2) on Windows 10, 64bit, using Visual Studio 2019, both Debug and Release builds:
module test
use iso_fortran_env, only: wp => real64
implicit none
private
public :: go
contains
subroutine go()
integer,dimension(:),allocatable :: m
allocate(m(10))
m = huge(1.0_wp)
end subroutine go
end module test
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The same error can also be produced with the following minimal example:
integer::i(1)
i=huge(0.)
end
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
V-T's 3-line program has i=huge(0.) but huge(0.) is too big to store in the integer i. Changing to i=huge(0) makes the program run.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, but the problem is not with the correctness of the code. Internal compiler errors (ICEs) should not happen. If there are some syntax errors, the compiler should catch them with appropriate error messages, not with ICEs. Also, converting `huge(0.)` to an integer isn't a problem for ifx without any compiler flags, because, if you remove `(1)` in the first line, the code will compile without any problems.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for reporting the ICE to us. I have been able to reproduce it internally, and the case has been escalated to compiler engineering for a fix.

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