This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/71712] New: Redundant ABI tags for conversion operator


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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]