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
员工
1,025 次查看

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 项奖励
6 回复数
Lee_B_3
新手
1,025 次查看

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 项奖励
Kevin_D_Intel
员工
1,025 次查看

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 项奖励
Johannes_Rieke
新分销商 III
1,025 次查看

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

0 项奖励
Kevin_D_Intel
员工
1,025 次查看

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

0 项奖励
Pelle_R_
初学者
1,025 次查看

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 项奖励
Kevin_D_Intel
员工
1,025 次查看

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

(Internal tracking id: CMPLRS-43068)

0 项奖励
回复