ianlancetaylor / demangle

C++ symbol name demangler written in Go
BSD 3-Clause "New" or "Revised" License
166 stars 24 forks source link

binutils' c++filt can demangle a symbol but ianlancetaylor/demangle cannot #6

Closed aalexand closed 5 years ago

aalexand commented 5 years ago
$ c++filt _ZN3___4____10__________IN8________8________16________________INS3_21_____________________EEEECI2NS0_28____________________________IS5_EEIRK12____________IcSt11___________IcESaIcEEvEEOT_
___::____::__________<________::________::________________<________::________::_____________________> >::____________________________<____________<char, std::___________<char>, std::allocator<char> > const&, void>(____________<char, std::___________<char>, std::allocator<char> > const&)

$ go run c++filt.go
_ZN3___4____10__________IN8________8________16________________INS3_21_____________________EEEECI2NS0_28____________________________IS5_EEIRK12____________IcSt11___________IcESaIcEEvEEOT_
_ZN3___4____10__________IN8________8________16________________INS3_21_____________________EEEECI2NS0_28____________________________IS5_EEIRK12____________IcSt11___________IcESaIcEEvEEOT_
^Csignal: interrupt

$ c++filt --version
GNU c++filt (GNU Binutils for Debian) 2.30
Copyright (C) 2018 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
ianlancetaylor commented 5 years ago

This particular set of symbols (inheriting constructors, the "CI" that appears in the string) is fixed by commit 5e5cf60278f657d30daa329dd0e7e893b6b8f027 .