- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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]
Link Copied
7 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I can't try this right now, but try disabling "Generate interface blocks" and "Check routine interfaces".
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
/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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Steve Lionel (Intel)
/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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page