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

ICE: Creating this name exceeds internal buffer:

FlyingHermes
New Contributor I
670 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 II
658 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. 

FlyingHermes
New Contributor I
652 Views

I'm on Linux, using Fedora 34:

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

 

andrew_4619
Honored Contributor II
640 Views
Steve_Lionel
Black Belt Retired Employee
629 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.

JohnNichols
Valued Contributor II
606 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. 

Steve_Lionel
Black Belt Retired Employee
596 Views

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

JohnNichols
Valued Contributor II
545 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.  

Barbara_P_Intel
Moderator
559 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.


FlyingHermes
New Contributor I
554 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 ?

 

JohnNichols
Valued Contributor II
544 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.  

andreasskeidsvoll
306 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?

Barbara_P_Intel
Moderator
551 Views

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



Barbara_P_Intel
Moderator
285 Views

No news yet.


andreasskeidsvoll
195 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.

Barbara_P_Intel
Moderator
171 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.



Steve_Lionel
Black Belt Retired Employee
166 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.

Reply