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.