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

ICE: Creating this name exceeds internal buffer:

FlyingHermes
New Contributor I
2,441 Views

Hi,

Here is a  minimal reproducible example (MRE) for some code which generates an ICE due to the length of the name of the module and sub-module exceeding the internal buffer inside ifort.

Module A_Very_Long_Module_Name_Composed_Of_Many_Characters
  implicit none
  interface
    module subroutine DoSomething()
    end subroutine
  end interface
End Module

SubModule(A_Very_Long_Module_Name_Composed_Of_Many_Characters) A_Long_Submodule_Composed_Name_Of_Many_Char
  implicit none
  contains
  module procedure DoSomething
  end procedure
End SubModule

Compiling this code using:

module load --silent compiler/latest
ifort --version
ifort Main.F90 -c

gives

ifort (IFORT) 2021.5.0 20211109
Copyright (C) 1985-2021 Intel Corporation.  All rights reserved.

Main.F90: catastrophic error: **Internal compiler error: Creating this name exceeds internal buffer: a_very_long_module_name_composed_of_many_characters@a_long_submodule_composed_name_of_many_char._
compilation aborted for Main.F90 (code 1)

If the name of the sub-module is shorten by a single character (for example, by removing the final "r" letter) the compilation succeeds. It seems that a maximum length of 96 character is used internally by ifort for the combined length of a module and sub-module.

 

Would it be possible to increase this number of a higher value in the nest release of the compiler?

 

The motivation for this request if the following. In our real case scenario we are using some code generation techniques to automatically create module/sub-module names. So, we don't have (an easy) control on the length for these names and, in some cases, these names can be quite lengthy.

 

Thank you.

 

0 Kudos
16 Replies
andrew_4619
Honored Contributor III
2,429 Views

I just compiled your your code same with Intel® Fortran Compiler Classic 2021.5.0 [Intel(R) 64] with no errors or warnings.  That is strange. 

0 Kudos
FlyingHermes
New Contributor I
2,423 Views

I'm on Linux, using Fedora 34:

Linux 5.15.12-100.fc34.x86_64 x86_64 x86_64 x86_64 GNU/Linux

 

0 Kudos
andrew_4619
Honored Contributor III
2,411 Views
0 Kudos
Steve_Lionel
Honored Contributor III
2,400 Views

An ICE is bad, but the compiler is limited by the length of a global symbol on the platform in question. Submodules complicate it even further, and it looks as if someone missed a check.

0 Kudos
JohnNichols
Valued Contributor III
2,377 Views

MaxPC reports that someone has Windows 11 running on a RPi, just wait till we start getting asked questions about IFX on a RPI. 

0 Kudos
Steve_Lionel
Honored Contributor III
2,367 Views

Eh, there have been requests for ifort on ARM for years. Not gonna happen.

0 Kudos
JohnNichols
Valued Contributor III
2,316 Views

Do you know how many future programmers are getting their start on the PI --I would be willing to wager that you are wrong and a "lite" version of Fortran will show up on the PI. 

it is amazing what people are doing with this machine.  

0 Kudos
Barbara_P_Intel
Employee
2,330 Views

I duplicated the ICE on Linux and filed a bug report, CMPLRIL0-34588. A fix will not make the next release; code freeze is imminent. I'll let you know when it's fixed.


0 Kudos
FlyingHermes
New Contributor I
2,325 Views

Thank you. May I ask if intel is planning to extend the limit on the number of characters, or you will just fix the ICE and transform it into a regular compile-time error ?

 

0 Kudos
JohnNichols
Valued Contributor III
2,315 Views

Is code freeze the same as brain freeze when you drink a Slurpee to fast? 

 

Sorry it is the end of a long day and I had a session with the dentist.  

0 Kudos
andreasskeidsvoll
2,077 Views

Hi,

For you information, the same bug also occurs on the newest ifx compilers. Do you know if the bug will also be fixed for ifx in the future?

0 Kudos
Barbara_P_Intel
Employee
2,322 Views

I don't know what the compiler developers will decide. I'll let you know when I know.



0 Kudos
Barbara_P_Intel
Employee
2,056 Views

No news yet.


0 Kudos
andreasskeidsvoll
1,966 Views

Tested the minimal reproducible example by the original poster on the recently released ifx 2023.0.0 and ifort 2021.8.0 versions, and the bug is still there (for both compilers). A pity, since we would very much like our users to be able to use ifx 2023.0.0 for compiling our code, but the bug requires us to drop support for Intel compilers.

0 Kudos
Barbara_P_Intel
Employee
1,942 Views

I checked with the compiler team. This issue is planned to be fixed in the 2023.1.0 compiler. I believe that will be available in the March 2023 timeframe.



0 Kudos
Steve_Lionel
Honored Contributor III
1,937 Views

I'll note that there is also a platform-dependent limit on the combined length of module and symbol name due to object code limitations. I think on Windows it's 63 characters (including name decoration such as the underscore between module and symbol.) For portability, it's a good idea to not stress this limit.

0 Kudos
Reply