Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

PSXE 2017 Update 2 - Internal Compiler Error(s) involving PARAMETER constants and /debug-parameters /debug options

Kevin_D_Intel
Employee
426 Views

PSXE 2017 Update 2 - Internal Compiler Error(s) involving PARAMETER constants and /debug-parameters /debug options

A defect (regression) has been found in the Intel® Parallel Studio XE 2017 Update 2 (17.0 compiler) release involving the use of PARAMETER constants along with the /debug-parameter and /debug options. The combined use can led to multiple internal compiler errors.

The following example (complements of andrew_4619) demonstrates usage that will trigger the internal error:

module ice
    implicit none
    integer, parameter :: ld=82  
    contains
    subroutine thingy 
        call bob(ld)
    end subroutine thingy 
    subroutine bob(I)
        integer,intent(in) :: I
        print *, I
    end subroutine bob
end module ice

Users may experience several internal errors during a build attempt for the Debug configuration under Visual Studio where it is common to have /debug-parameter and /debug options enabled simultaneously.

Users can work around the defect by either:

  1. Under Visual Studio, disabling the /debug-parameters option under: Properties > Fortran > Debugging > Information for PARAMETER Constants set to None
  2. Under Visual Studio, using only minimal /debug information (i.e. Properties > Fortran > Debugging > Information set to Line Numbers Only) with any setting for /debug-parameters (see the property setting in #1 above).
  3. On the compiler command-line, removing all occurrences of the /debug-parameters from compiler command-line or within application build scripts when using /debug:full
  4. On the compiler command-line, using /debug:minimal with any setting for /debug-parameters on the compiler command-line or within application build scripts.

The internal tracking id for this defect is: DPD200418283.

(Resolution Update on 05/12/2017): This defect is fixed in the Intel® Parallel Studio XE 2017 Update 4 release (ifort Version 17.0.4.210 Build 20170428 - PSXE 2017.4.051 / CnL 2017.4.210 - Windows)

 

0 Kudos
6 Replies
Lee_B_3
Novice
426 Views

Greetings,

     I was debugging some code and tried to right-click on a PARAMETER constant to use QuickWatch to see its value.  It showed as UNDEFINED, but each case I try that acts this way, seems to evaluate correctly.  I am using IVF 2017, update 2, and FULL debug mode.  Am I supposed to be able to QuickWatch PARAMETER constants or is this perhaps a symptom of the issue mentioned above?

     Thank you in advance.

Take Care,

Lee Benjamin

0 Kudos
Kevin_D_Intel
Employee
426 Views

If you disable (or set to None) the specific debugging aid for PARAMETERS as noted in item #1 of the original post then under the debugger you will see Undefined for parameter constants.

If you do not have the type of use shown in the example that triggers the internal error then you can enable the setting in item #1 and be able to view a parameter constant's value via QuickWatch as shown below.

0 Kudos
Johannes_Rieke
New Contributor III
426 Views

PSXE2017 update 4 solves the ICE problem for me. Hooray!

0 Kudos
Kevin_D_Intel
Employee
426 Views

Yes, PSXE 2017 Update 4 contains the fix for this issue.

0 Kudos
Pelle_R_
Beginner
426 Views

While the sample code from the OP does compile using ifort 17.0.4.210, below code (same code, but character constant instead of integer) still does not:

module ice
    implicit none
    character, parameter :: ld = 'c'
    contains
    subroutine thingy
        call bob(ld)
    end subroutine thingy
    subroutine bob(I)
        character, intent(in) :: I
        print *, I
    end subroutine bob
end module ice

 

0 Kudos
Kevin_D_Intel
Employee
426 Views

Thank you Pelle. I confirmed this and informed our Developers. Our apologies this case was also not fixed.

(Internal tracking id: CMPLRS-43068)

0 Kudos
Reply