public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/12843] New: [ABI] Possibly wrong mangling (incompatibility with icc7)
@ 2003-10-30 14:41 bangerth at dealii dot org
2003-10-30 14:42 ` [Bug c++/12843] " nathan at gcc dot gnu dot org
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: bangerth at dealii dot org @ 2003-10-30 14:41 UTC (permalink / raw)
To: gcc-bugs
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
Summary: [ABI] Possibly wrong mangling (incompatibility with
icc7)
Product: gcc
Version: 3.4
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bangerth at dealii dot org
CC: gcc-bugs at gcc dot gnu dot org
This code
--------------------------------
template <typename Container>
typename Container::iterator
f(Container)
{ return typename Container::iterator(); }
struct X {
typedef int * iterator;
};
template X::iterator f<X> (X);
------------------------------
produces the following manglings of the instance of f():
mainline -fabi-version=1:
_Z1fI1XEN9Container8iteratorES1_
mainline -fabi-version=2:
_Z1fI1XENT_8iteratorES1_
icc 7.0:
_Z1fI1XEN9Container8iteratorET_
I am not familiar with the mangling rules, but someone might want to
check that we really do the right thing in this case and that it is icc's
faulty mangling that lets us not be link-compatible between icc and
mainline with -fabi-version=2.
W.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/12843] [ABI] Possibly wrong mangling (incompatibility with icc7)
2003-10-30 14:41 [Bug c++/12843] New: [ABI] Possibly wrong mangling (incompatibility with icc7) bangerth at dealii dot org
@ 2003-10-30 14:42 ` nathan at gcc dot gnu dot org
2003-10-30 16:12 ` Carlo Wood
2003-10-30 15:58 ` bangerth at ices dot utexas dot edu
` (3 subsequent siblings)
4 siblings, 1 reply; 7+ messages in thread
From: nathan at gcc dot gnu dot org @ 2003-10-30 14:42 UTC (permalink / raw)
To: gcc-bugs
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
nathan at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |FIXED
------- Additional Comments From nathan at gcc dot gnu dot org 2003-10-30 14:41 -------
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/12843] [ABI] Possibly wrong mangling (incompatibility with icc7)
2003-10-30 14:41 [Bug c++/12843] New: [ABI] Possibly wrong mangling (incompatibility with icc7) bangerth at dealii dot org
2003-10-30 14:42 ` [Bug c++/12843] " nathan at gcc dot gnu dot org
@ 2003-10-30 15:58 ` bangerth at ices dot utexas dot edu
2003-10-30 16:19 ` carlo at alinoe dot com
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: bangerth at ices dot utexas dot edu @ 2003-10-30 15:58 UTC (permalink / raw)
To: gcc-bugs
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 bangerth at ices dot utexas dot edu 2003-10-30 15:45 -------
Subject: Re: [ABI] Possibly wrong mangling (incompatibility with icc7)
Thanks, Nathan, for this really quick review! I was almost sure that having
the name of a parameter in the mangling must be wrong since one can change it
between successive declarations. But not knowing the standard in this respect
I thought I'd better ask.
Thanks
Wolfgang
-------------------------------------------------------------------------
Wolfgang Bangerth email: bangerth@ices.utexas.edu
www: http://www.ices.utexas.edu/~bangerth/
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Bug c++/12843] [ABI] Possibly wrong mangling (incompatibility with icc7)
2003-10-30 14:42 ` [Bug c++/12843] " nathan at gcc dot gnu dot org
@ 2003-10-30 16:12 ` Carlo Wood
0 siblings, 0 replies; 7+ messages in thread
From: Carlo Wood @ 2003-10-30 16:12 UTC (permalink / raw)
To: nathan at gcc dot gnu dot org; +Cc: gcc-bugs
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.
--
Carlo Wood <carlo@alinoe.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/12843] [ABI] Possibly wrong mangling (incompatibility with icc7)
2003-10-30 14:41 [Bug c++/12843] New: [ABI] Possibly wrong mangling (incompatibility with icc7) bangerth at dealii dot org
2003-10-30 14:42 ` [Bug c++/12843] " nathan at gcc dot gnu dot org
2003-10-30 15:58 ` bangerth at ices dot utexas dot edu
@ 2003-10-30 16:19 ` carlo at alinoe dot com
2004-07-13 20:27 ` reichelt at gcc dot gnu dot org
2004-07-13 20:27 ` reichelt at gcc dot gnu dot org
4 siblings, 0 replies; 7+ messages in thread
From: carlo at alinoe dot com @ 2003-10-30 16:19 UTC (permalink / raw)
To: gcc-bugs
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.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/12843] [ABI] Possibly wrong mangling (incompatibility with icc7)
2003-10-30 14:41 [Bug c++/12843] New: [ABI] Possibly wrong mangling (incompatibility with icc7) bangerth at dealii dot org
` (3 preceding siblings ...)
2004-07-13 20:27 ` reichelt at gcc dot gnu dot org
@ 2004-07-13 20:27 ` reichelt at gcc dot gnu dot org
4 siblings, 0 replies; 7+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2004-07-13 20:27 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From reichelt at gcc dot gnu dot org 2004-07-13 20:27 -------
... to mark as invalid.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12843
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/12843] [ABI] Possibly wrong mangling (incompatibility with icc7)
2003-10-30 14:41 [Bug c++/12843] New: [ABI] Possibly wrong mangling (incompatibility with icc7) bangerth at dealii dot org
` (2 preceding siblings ...)
2003-10-30 16:19 ` carlo at alinoe dot com
@ 2004-07-13 20:27 ` reichelt at gcc dot gnu dot org
2004-07-13 20:27 ` reichelt at gcc dot gnu dot org
4 siblings, 0 replies; 7+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2004-07-13 20:27 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From reichelt at gcc dot gnu dot org 2004-07-13 20:27 -------
Reopening ...
--
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |UNCONFIRMED
Resolution|FIXED |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12843
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2004-07-13 20:27 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-10-30 14:41 [Bug c++/12843] New: [ABI] Possibly wrong mangling (incompatibility with icc7) bangerth at dealii dot org
2003-10-30 14:42 ` [Bug c++/12843] " nathan at gcc dot gnu dot org
2003-10-30 16:12 ` Carlo Wood
2003-10-30 15:58 ` bangerth at ices dot utexas dot edu
2003-10-30 16:19 ` carlo at alinoe dot com
2004-07-13 20:27 ` reichelt at gcc dot gnu dot org
2004-07-13 20:27 ` reichelt at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).