[Bug c++/12843] New: [ABI] Possibly wrong mangling (incompatibility with icc7)
bangerth at dealii dot org
gcc-bugzilla@gcc.gnu.org
Thu Oct 30 14:41: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
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.
More information about the Gcc-bugs
mailing list