- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
[plain]H:\Visual Studio 2005\Projects\SecretPlans\SecretPlansForTakingOverTheWorld.f90(1):
warning #5462: Global name too long, shortened from:
_S_CRETPLANSFORTAKINGOVERTHEWORLD$SECRETPLANSFORTAKINGOVERTHEWORLD_mp_DEVELOP_WINDOWS7$BLK..T7492_
to: _CRETPLANSFORTAKINGOVERTHEWORLD$SECRETPLANSFORTAKINGOVERTHEWORLD_mp_DEVELOP_WINDOWS7$BLK..T7492_ ! $Id: SecretPlansForTakingOverTheWorld.f90 1083 2010-10-01 07:56:07Z billg $ ^ [/plain]
where the procedure in question is a private module procedure. From looking at the assembly, 11.1 just used the symbol SECRETPLANSFORTAKINGOVERTHEWORLD_mp_DEVELOP_WINDOWS7$BLK..T7492_
Few questions:
- Is it safe to ignore this?
- What's the reason for the symbol mangling change?
The symbol seems to have something to do with the specification part of the procedure, but I've not been able to make a small reproducer to understand further.
Thanks,
IanH
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
D:\EPPgm\DBL_Source\ElectricPowerGenerators.f90(1): warning #5462: Global name too long, shortened from: _GE_ERATORDYNAMICSMANAGER$generatordynamicsmanager_mp_setupgeneratorcontrolstatemanager$BLK..T1609_ to: _ERATORDYNAMICSMANAGER$generatordynamicsmanager_mp_setupgeneratorcontrolstatemanager$BLK..T1609_
At least I think what you're calling repeated. mine aren't in UPPERCASE -- I think i have the switch on to put externals in lower case (due to some mixed language stuff)
Linda
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Linda
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks, but too much is missing from this. Can you attach just the ElectricPowerGenerators.obj file? It might give me a clue.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
D:\EPPgm\DBL_Source\ElectricPowerGenerators.f90(1): warning #5462: Global name too long, shortened from: _GE_ERATORDYNAMICSMANAGER$generatordynamicsmanager_mp_setupgeneratorcontrolstatemanager$BLK..T1609_ to: _ERATORDYNAMICSMANAGER$generatordynamicsmanager_mp_setupgeneratorcontrolstatemanager$BLK..T1609_
^
D:\EPPgm\DBL_Source\ElectricPowerGenerators.f90(1): warning #5462: Global name too long, shortened from: _GE_ERATORDYNAMICSMANAGER$generatordynamicsmanager_mp_setupgeneratorcontrolstatemanager$BLK..T1620_ to: _ERATORDYNAMICSMANAGER$generatordynamicsmanager_mp_setupgeneratorcontrolstatemanager$BLK..T1620_
^
There is another public item in that module:
FuncDetermineCWMdotForInternalFlowControl
which is longer than SetupGeneratorControlStateManager but does not generate a warning
One is a subroutine and one is a function in the code.
Linda
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The pre-requisites for the warning are pretty convoluted - in this specific case it involves things that are very "logically distant" from the source being compiled with the long symbol (e.g. a module that isn't used at all).
ExcelCOM.f90
ThirtyTwoCharactersInAModuleName.f90
[plain]>ifort /c ExcelCOM.f90 ThirtyTwoCharactersInAModuleName.f90 Intel Visual Fortran Compiler XE for applications running on IA-32, Version 1 2.0.0.104 Build 20101006 Copyright (C) 1985-2010 Intel Corporation. All rights reserved. ThirtyTwoCharactersInAModuleName.f90(1): warning #5462: Global name too long, sh ortened from: __HIRTYTWOCHARACTERSINAMODULENAME$THIRTYTWOCHARACTERSINAMODULENAME _mp_SIXTEENCHARSPROC$BLK..T101_ to: _HIRTYTWOCHARACTERSINAMODULENAME$THIRTYTWOCH ARACTERSINAMODULENAME_mp_SIXTEENCHARSPROC$BLK..T101_ ^[/plain]
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have been able to construct a small test case to demonstrate the 12.0 compiler putting the module twice into certain symbol names. The problem has been escalated to the compiler developers.
Linkers impose a maximum length on symbol names. For long module names, the duplication may cause the symbol name to exceed the maximum length, and the compiler may need to truncate, starting from the front. Since it is the duplicate name that gets truncated, I don't think there is any danger of name conflicts, except in extreme cases that would also have been a problem in the 11.1 compiler. Therefore, if you don't like the plethora of warning messages, you could disable them with /Qdiag-disable:5462.
We'll let you know if/when there's a compiler update with a fix for the duplication of the module name in some symbol names.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Is it possible for Intel to offer any general guidance on the length of module names? I expect there will always be a limit, imposed by the linker if nothing else. So I don't expect a magical fix. But some bounds for my more "poetic" developers would be helpful.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page