ICE with 12.0.5

ICE with 12.0.5

test1.f90:

MODULE MOD_RTP INTEGER, PARAMETER :: LINE_LEN = 128 INTEGER, PARAMETER :: WORD_LEN = 100 TYPE, ABSTRACT, PUBLIC :: RTP CHARACTER(LEN=LINE_LEN) :: HELP CHARACTER(LEN=WORD_LEN) :: KEYWORD CHARACTER(LEN=LINE_LEN) :: DESCRIPTION LOGICAL :: SET_BY_USER = .FALSE. INTEGER :: ORDER = 0 END TYPE TYPE, EXTENDS(RTP), PUBLIC :: RTP_REAL REAL :: DEFAULT_VALUE REAL :: VALUE END TYPE END MODULE MOD_RTP subroutine TEST USE MOD_RTP IMPLICIT NONE TYPE(RTP_REAL) :: FUDGE_FACTOR(DEFAULT_VALUE=0.0,KEYWORD='variable_one',DESCRIPTION='the first variable',HELP='gimme the first variable') end subroutine TEST
Fails at compile-time:
$ ifort test1.f90 test1.f90(23): 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 test1.f90 (code 1)
Edit: reproduced with 12.0.5

8 Beiträge / 0 neu
Letzter Beitrag
Nähere Informationen zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.

confirmed in 12.0 Update 5 and the forthcoming Update 6 along with mainline code branch. I'll get a bug report started after seeing if I can trim this down a little more.

ron

Issue ID is DPD200172989

As a forewarning, this will not be fixed for at least several months. We missed the code freeze for Update 6.

ron

Quoting Ronald W. Green (Intel)
Issue ID is DPD200172989

As a forewarning, this will not be fixed for at least several months. We missed the code freeze for Update 6.

ron

Thanks Ron. Shame about missing the code freeze. Just so I know, did you manage to narrow it down more?

just slightly:

INTEGER::ORDER=0

wasn't needed. Everything else seems important. The bug seems to be in initializers in combination with the extended type.

ron

oh and I forgot one other note: aside from the internal compiler error, you do realize your syntax is invalid? What you really want is:

TYPE(RTP_REAL) :: FUDGE_FACTOR=RTP_REAL(DEFAULT_VALUE=0.0,KEYWORD='variable_one',&
DESCRIPTION='the first variable',HELP='gimme the first variable',VALUE=0.0)

that is, you need to add "=RTP_REAL" and you need an intializer for VALUE, like VALUE=0.0

the compile thought you were declaring an array with some really odd dimensions with the illegal syntax you were using.

ron

Hey Ron,

Thanks a lot. I actually didn't realise I was doing it wrong. I'd just read about component initialisation and thought I'd give it a try. When I saw the ICE, it distracted me from checking the syntax.

Thanks again,
Alexis

This bug is fixed in version 13.0, aka "Composer XE 2013" released Sept. 5th.

Closing out this bug report, thanks for helping us improve our compiler!

ron

Kommentar hinterlassen

Bitte anmelden, um einen Kommentar hinzuzufügen. Sie sind noch nicht Mitglied? Jetzt teilnehmen