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 demangler/79976] long list of demangle failures


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79976

--- Comment #7 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
One big chunk of failures is due to the following:

markus@x4 tmp % cat mangl.ii
struct C;
template <class T> struct B {
  template <class U> operator B<U>();
  T *operator->();
};
struct D {
  B<C> tmp;
  template <class T> void m_fn1(T p1) { tmp = p1; }
};
struct E;
void fn1() {
  B<D> l;
  B<E> m;
  l->m_fn1(m);
}

markus@x4 tmp % g++ -O2 -c mangl.ii && nm -C mangl.o
0000000000000000 T fn1()
                 U B<D>::operator->()
                 U _ZN1BI1EEcvS_IT_EI1CEEv

markus@x4 tmp % llvm-cxxfilt _ZN1BI1EEcvS_IT_EI1CEEv
B<E>::operator B<C><C>()


The second <C> in "B<C><C>" is not handled.

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