https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93461

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |burnus at gcc dot gnu.org

--- Comment #6 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #4)
> Fixing this will be an ABI change and may cause old and new objects no
> longer to link?

By itself, the pattern for constructing the identifier is unchanged – except
that there is now more space for longer names. — Before the change, it only
accepted identifiers of the following length:

__amodulewithanallowedname.asubmodulewithaveryveryverylongbutentirelylegalname_MOD_asubroutinewithaverylongnamethatwillcauseaprobl

If you save letters in the module name (amodulewithanallowedname) and/or
submodule name (asubmodulewithaveryveryverylongbutentirelylegalname) you have
more letters for the procedure name – which is already not that short even
after trimming: "asubroutinewithaverylongnamethatwillcauseaprobl".

Thus, the problem only occurs if all parts use very long names – and only if
one uses submodules which are also a relatively new feature (of GCC 6).

Hence, technically, it is an ABI change – but I don't think that any real-world
program will have hit this limit!

Reply via email to