- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The following code generates an internal compiler error with compiler version 2015 Beta:
MODULE m !.. IMPLICIT NONE !.. PRIVATE TYPE :: s !.. CHARACTER(LEN=:), ALLOCATABLE :: q PROCEDURE(fabs), NOPASS, POINTER :: p END TYPE s TYPE :: t INTEGER :: i1 TYPE(s) :: bar CONTAINS PRIVATE PROCEDURE, PASS(This) :: f PROCEDURE, PASS(This), PUBLIC :: s2 END TYPE t INTERFACE PURE FUNCTION fabs(This) RESULT(RetVal) IMPORT :: t !.. Argument list CLASS(t), INTENT(IN) :: This !.. Function result INTEGER :: RetVal END FUNCTION fabs END INTERFACE CONTAINS PURE FUNCTION f(This) RESULT(RetVal) !.. Argument list CLASS(t), INTENT(IN) :: This !.. Function result INTEGER :: RetVal RetVal = This%i1 RETURN END FUNCTION f SUBROUTINE s2(This) CLASS(t), INTENT(INOUT) :: This This%bar = s("s1", f) RETURN END SUBROUTINE s2 END MODULE m
The output is as follows:
------ Build started: Project: TestFor, Configuration: Release|Win32 ------ Compiling with Intel(R) Visual Fortran Compiler XE 15.0.0.070 [IA-32]... m.f90 C:\..\sor\m.f90(62): catastrophic error: **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. compilation aborted for C:\..\sor\m.f90 (code 1) Build log written to "file://C:\..\Release\Win32\TestForBuildLog.htm" TestFor - 1 error(s), 0 warning(s)
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
FWIW, the above code compiles with no errors using gfortran 4.9.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Similar results with 64-bit ifort 15.0 update 3 and recent gfortran. ifort dies immediately when it reaches function mp_f, even without optimization.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Tim Prince wrote:
Similar results with 64-bit ifort 15.0 update 3 and recent gfortran. ifort dies immediately when it reaches function mp_f, even without optimization.
Thanks, Tim. It appears to have something to do with procedure pointer to a type-bound procedure. My thinking is the code is consistent with the latest standard and gfortran is handling it correctly and efficiently, based on my unit tests. However I'll wait to hear from Intel staff.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for reporting the internal error and for the convenient test case. I escalated this to Development (see internal tracking id below). Whether compliant or not (I’ll await Development’s assessment on that) the internal error must be addressed. The internal error also occurs when using our latest Composer XE 2013 SP1 Update 3 (14.0 compiler) too. I will post again after hearing more.
(Internal tracking id: DPD200358902)
(Resolution Update on 11/17/2014): This defect is fixed in the Intel® Parallel Studio XE 2015 Update 1 release (2015.0.148 - Windows)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This defect is fixed in the Intel® Parallel Studio XE 2015 Update 1 release (Version 15.0.1.148 Build 20141023 - Windows) now available from our Intel Registration Center.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Kevin Davis (Intel) wrote:
This defect is fixed in the Intel® Parallel Studio XE 2015 Update 1 release (Version 15.0.1.148 Build 20141023 - Windows) now available from our Intel Registration Center.
Excellent, I just tried it out and it worked. Thank you much,

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