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

ICE for use of symbol that should be private from nested module

Steven_L_Intel1
Employee
836 Views

Moved from unrelated thread

0 Kudos
4 Replies
IanH
Honored Contributor III
836 Views
Ok - thanks for the response. I'll start abbreviating some of my module names. I think the new mangling convention is definitely safe from accidental symbol clashes! It was the repetitiion of the module name that I was curious about - I wondered whether this was a change in preparation for sub-modules.

Completely unrelated - here's a snippet that ICE's 12.0. 11.1 accepts the example as it is, but probably shouldn't have. 12.0 will still ICE even if the code is corrected.

ifort-12-ice.f90
0 Kudos
Steven_L_Intel1
Employee
836 Views
Ian,

Can you provide the source that led to the repeated module name? I just want to make sure it's correct.

The ICE is escalated as DPD200162880. What the compiler SHOULD do with the source you provide is generate a call to an external routine GENINTF. You are correct that version 11.1 accepts the source but it calls the wrong routine. In some ways, one might say the 12.0 behavior is an improvement, but it is still wrong. Thanks for providing this.
0 Kudos
Steven_L_Intel1
Employee
836 Views
Amusingly, 12.0 Update 1 reverts to the 11.1 behavior - no ICE, but the wrong routine is called.
0 Kudos
Steven_L_Intel1
Employee
836 Views

This got fixed in 13.0.

0 Kudos
Reply