This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/12909] New: ambiguity in mangling vector types
- From: "jbeulich at novell dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 5 Nov 2003 09:48:58 -0000
- Subject: [Bug c++/12909] New: ambiguity in mangling vector types
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12909
Summary: ambiguity in mangling vector types
Product: gcc
Version: 3.3.2
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jbeulich at novell dot com
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
Since only the base type and the fact that it is a vector, but not the number of
elements in it is encoded in the mangling of vector types, vector types with
identical base types but different element counts (e.g. V4SI and V2SI) mangle
the same. Thus the code below passes the compiler successfully, but fails the
assembly stage (Error: symbol `_Z4testU8__vectorj' is already defined):
typedef unsigned __attribute__((__mode__(__V2SI__))) __mm64i;
typedef unsigned __attribute__((__mode__(__V4SI__))) __mm128i;
__mm64i test(__mm64i n) {
return n;
}
__mm128i test(__mm128i n) {
return n;
}