- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The following causes an ICE with 11.1, which I have reported to premier support. But I have two follow up questions:
- is it legitimate Fortran? The forward reference to B_type in A_type is ok because of the POINTER attribute, isn't it?
- are there any workarounds to the ICE?
I would have thought this sort of arrangment would have been reasonably common for data tree arrangments.
Thanks for any advice,
IanH
- is it legitimate Fortran? The forward reference to B_type in A_type is ok because of the POINTER attribute, isn't it?
- are there any workarounds to the ICE?
I would have thought this sort of arrangment would have been reasonably common for data tree arrangments.
Thanks for any advice,
IanH
[cpp]MODULE TestCircular
IMPLICIT NONE
TYPE A_type
TYPE(B_type), POINTER :: lots_of_bees(:)
INTEGER d
END TYPE A_type
TYPE B_type
TYPE(A_type), ALLOCATABLE :: some_ays(:)
INTEGER d
END TYPE B_type
END MODULE TestCircular
[/cpp]
Link Copied
5 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
An ICE is always a bug, If the source code is unacceptable, the compiler should attempt to provide a diagnosis. With my most recent copy of ifort 11.1 beta for x86_64, I have to set -diag-enable sc, which you didn't mention, in order to provoke a compile time segmentation violation. So it does seem there is a bug, at least in that option. Trying options -stand=f95 and -stand=f03, the compiler says you are using an extension to f95 (a warning, not a failure), but has no complaint about f03.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - tim18
An ICE is always a bug, If the source code is unacceptable, the compiler should attempt to provide a diagnosis. With my most recent copy of ifort 11.1 beta for x86_64, I have to set -diag-enable sc, which you didn't mention, in order to provoke a compile time segmentation violation. So it does seem there is a bug, at least in that option. Trying options -stand=f95 and -stand=f03, the compiler says you are using an extension to f95 (a warning, not a failure), but has no complaint about f03.
Thanks. What's the windows command line or IDE equivalent of the -diag-enable option you mention? F03 is my target.
(If the option you listed was for static verification then I am not using that - at the moment I get an ICE with what is just the out-of-the-box IA32 command line build environment with 11.1 build 35, with no additional ifort command line options.)
IanH
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I can get an ICE with no options. -diag-enable-sc is static verifier/source checker and would not create an executable if you used it.
This code should work and I am astonished it doesn't. Thanks for reporting it. You can use 11.0.074 to compile this.
This code should work and I am astonished it doesn't. Thanks for reporting it. You can use 11.0.074 to compile this.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, this bug was in the compiler proper (not part of extra diagnostic checking) and has been fixed for an 11.1 update.
- Lorri
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This problem was corrected in 11.1 Update 1.

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