This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/71712] New: Redundant ABI tags for conversion operator
- From: "dmitry.polukhin at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 30 Jun 2016 08:45:29 +0000
- Subject: [Bug c++/71712] New: Redundant ABI tags for conversion operator
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71712
Bug ID: 71712
Summary: Redundant ABI tags for conversion operator
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dmitry.polukhin at gmail dot com
Target Milestone: ---
Reproducer:
struct __attribute__((abi_tag("A", "B"))) A { };
struct A18 {
operator A() { return A(); }
};
void f18_test() {
A a = A18();
}
Mangling for 'A18::operator A' is '_ZN3A18cv1AB1AB1BB1AB1Bev' pretty printed as
' A18::operator A[abi:A][abi:B][abi:A][abi:B]()' i.e. the same tags mentioned
twice for the name. It seems that GCC adds implicit tags from the return type
of the function but in all other cases they are added only if the tags are
missing otherwise in the mangled name that is not the case in given example.