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

Internal compiler error (C0000005) on IVF 11.1.051

Hitoshi
Novice
903 Views
For an attachedsmall sample, internal compiler error occurs in debug mode,but not in release mode.
I would like to know whether this is due to the program error, or compiler error, or my developing environment.
Curiously, if I change the code from
if(.not.allocated(T_data)) allocate (T_data(ii_mem))
to
allocate (T_data(ii_mem)) ,
compilation succeeds.
Additionaly, if I compile this sample using IVF 11.1.046, everything OK.

One of the attached BuildLog.htms is generated in debug folder, and the other in release folder.
OS: VISTA business SP2
Visual Studio 2005 Version 8.0.50727.867 (vsvista.050727-8600)
Intel Visual Fortran compiler Integration(Japanese) w_cprof_p_11.1.051
Intel Visual Fortran compiler Integration to Microsoft* Visual Studio* 2005, 11.1.3468.2005
Copyright (C) 2002-2009 Intel Corporation
[plain]   module  Variables
   
   real(8),allocatable::T_data(:)
   integer::ii_mem
   
   end module Variables

    program main
    use variables
    implicit none
    integer ::i
    
    ii_mem=100
    if(.not. (allocated(T_data))) allocate(T_data(ii_mem))
    
    T_data=0.0
    
    write(*,*)(i,T_data(i),i=1,ii_mem)
    
    stop
    end program main
    [/plain]
0 Kudos
7 Replies
abhimodak
New Contributor I
903 Views
Hi

Surely this doesn't help much to resolve the issue but just a note: I don't get any compiler error with this snippet when using 11.1.051 on WinXP64 with VS2005.

Abhi
0 Kudos
Steven_L_Intel1
Employee
903 Views
I can't try this right now, but try disabling "Generate interface blocks" and "Check routine interfaces".
0 Kudos
Hitoshi
Novice
903 Views
Abhi and Steve, Thank you for your comments and suggestion.
Steves suggestion, removing "/gen-interfaces", "/check:bounds" "/warn:interfaces", solved the problem.
My actual MODULE code contains more than twenty of 2 or 3-dimensional allocatable variables which go well underIVF 11.1.046.
When I upgraded to IVF 11.1.051, all subroutine files except "module.f90" were rejected by C000005 error.
I decided to remain in IVF 11.1.046 at least under debugging stage for the time being.

Hitoshi


0 Kudos
Steven_L_Intel1
Employee
903 Views

/check:bounds is probably ok to keep. We've seen cases where enabling /gen-interfaces causes internal compiler errors. This issue is still under investigation.
0 Kudos
Duncan_Soutar
Beginner
903 Views

/check:bounds is probably ok to keep. We've seen cases where enabling /gen-interfaces causes internal compiler errors. This issue is still under investigation.

Removing /gen-interfaces can cause other problems, as it ensures presence of an explicit interface which is essential for correct operation of many features.

A compiler switch that generated warnings for any use of an implicit interface would be very helpful.


0 Kudos
Hitoshi
Novice
903 Views
Quoting - Simon Harding

Removing /gen-interfaces can cause other problems, as it ensures presence of an explicit interface which is essential for correct operation of many features.

A compiler switch that generated warnings for any use of an implicit interface would be very helpful.



Thanks Steve, Simon
I tried a bit more.
For my actual codes, which contain many allocatable arrays, need to remove /check:bounds to avoid C0000005.
Setting /gen-interface and /warn: interfacesdoes not cause anyerror C0000005 for all subroutines.
0 Kudos
Steven_L_Intel1
Employee
903 Views
Quoting - Simon Harding
Removing /gen-interfaces can cause other problems, as it ensures presence of an explicit interface which is essential for correct operation of many features.


/gen-interfaces is for diagnostics only -it does not replace the need tp provide an explicit interface where the language requires it. Note that in 11.1, /warn:interface implies /gen-interface.
0 Kudos
Reply