[Bug c++/12843] [ABI] Possibly wrong mangling (incompatibility with icc7)

carlo at alinoe dot com gcc-bugzilla@gcc.gnu.org
Thu Oct 30 16:19:00 GMT 2003


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12843



------- Additional Comments From carlo at alinoe dot com  2003-10-30 16:12 -------
Subject: Re:  [ABI] Possibly wrong mangling (incompatibility with icc7)

On Thu, Oct 30, 2003 at 02:41:10PM -0000, nathan at gcc dot gnu dot org wrote:
> The icc manglings and fabi-version=1 are definitly wrong. The name
> of a template parameter should never appear in a mangling. The fabi=2
> mangling looks good to me
> 1f -- func name
> I1XE template arg list. arg is 1X
> NT_ 8iteratorE - nested name using first template arg :: iterator
> S1_ copy of substitution 1
> 
> defect in icc

This is probably because the ABI was changed since it publication
one or two years ago.

<nested-name> ::= N [<CV-qualifiers>] <prefix> <unqualified-name> E
		  ::= N [<CV-qualifiers>] <template-prefix> <template-args> E

    <prefix> ::= <prefix> <unqualified-name>
	     ::= <template-prefix> <template-args>
             ::= <template-param>				<== NEW
	     ::= # empty
	     ::= <substitution>

    <template-prefix> ::= <prefix> <template unqualified-name>
                      ::= <template-param>			<== NEW
                      ::= <substitution>

Those <template-param> were not there in the beginning.
This also reveals a bug in the demangler.
I guess I'll have to go over the most recent specification to check
what all was changed.



More information about the Gcc-bugs mailing list