Dear all,
I am posting two situations that rise internal compiler errors in the hope that it helps others to avoid lengthy and annoining searches for the cause of the compiler crash, and in case Intel engineers are interested.
Both errors are triggered by invalid uses of type-bound procedures, such as forgetting the parentheses in a function call.
source A:
module m ! derived type ---------- type :: X integer :: x_comp contains procedure, nopass :: x_bind end type contains subroutine x_bind() end subroutine ! trigger crash --------- subroutine CRASH() type(X) :: myX ! use binding name as keyword myX = X(x_bind=1.0d0) end subroutine end module ! compiler output ----------- ! test9.f90: catastrophic error: **Internal compiler error: segmentation violation signal raised** 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 test9.f90 (code 1)
Source B:
module m ! derived type ---------- type :: X contains procedure, nopass :: x_bind end type contains subroutine x_bind end subroutine ! trigger crash --------- subroutine crash() type(X) :: myX logical :: expr ! apply any logical operator to non-existing ! component that corresponds to a binding name expr = .not. myX%x_bind end subroutine end module ! compiler output ----------- ! test10.f90(18): 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 test10.f90 (code 1)
System Info:
- Product Version: Intel(R) Fortran Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.3.199 Build 20190206
- Host OS and Version: Ubuntu Description: Ubuntu 18.04.2 LTS Release: 18.04 Codename: bionic
Kind regards
Ferdinand