The following code produces a bad mangled name (or at least a mangled name that
c++filt cannot handle):
template <typename F> class C { public: C(); };
class D
{
public:
template <typename F>
operator C<F>() { return C<F>(); }
};
C<bool> foo(D* p) { return *p; }
The final line produces the symbol ZN1Dcv1CIT_EIbEEv. c++filt cannot demangle
it.
Below is
--
Summary: GCC produces mangled names which can't be demangled
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: meheff at gcc dot gnu dot org
GCC build triplet: i686-unknown-linux
GCC host triplet: i686-unknown-linux
GCC target triplet: i686-unknown-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37677