New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some C++ symbols emitted by clang-14 cannot be demangled #700
Comments
I was briefly looking at some of the simpler identifiers here. Essentially it all boils down to https://github.com/gimli-rs/cpp_demangle not supporting them. For some of these and looking at the llvm-cxxfilt output:
A bit unclear, maybe the
For these two, I believe the Its a bit hard to find out what exactly it is unhappy with. I’m not quite sure what it would take to contribute this upstream, I found the code extremely hard to work with last time I contributed something. Also, the whole name mangling is way too underdocumented / underspecified. |
I just cloned https://github.com/gimli-rs/cpp_demangle, built it (using So I don't think this bug can be blamed on cpp_demangle. I expect, rather, that it's being given the wrong input. By the way, I did my tests with and without the "extra" underscore that all symbols have in binaries' symbol tables. |
But So maybe we have two bugs -- one that (sometimes) gives the wrong input to cpp_demangle, and another that's a problem with cpp_demangle itself. |
@gabrielesvelto, do you know if there's a (reasonably simple) way to do a local Firefox build with tools from a different version of LLVM? Say 15.0.3, which is the current version? It'd be interesting to see if that made any difference here. Edit: I think I've figured this out, and am working on it. Edit: No, building with the tools from LLVM 15.0.3 doesn't seem to have made any difference. |
maybe not relevant for your usecase, but we are using a patched version of Either way, there doesn’t seem to be any significant changes between master and the last released version either. Can you provide a filtered down list of identifiers that work with upstream |
I can do that, but it's proving funny because some of these symbols cause the latest version of |
All of the 1472 symbols in the list I attached fail on symbolic. The last version of |
I filed gimli-rs/cpp_demangle#272 and gimli-rs/cpp_demangle#273 to address the symbols that |
That is a semver compatible range, and we don’t have any lockfiles in symbolic directly. So a simple |
I believe this is completely upstream work to do in https://github.com/gimli-rs/cpp_demangle which I believe is already being tackled, so there is nothing really to do on our end. |
I can confirm that this has been fixed upstream and we've been using the fix via symbolic w/o encountering any other issues. |
Environment
Symbolic 10.0.0
Steps to Reproduce
symbolic-demangle seems to be unable to demangle any of the symbols in this list. They are taken from a Firefox build and have been generated with clang 14.0.5
Expected Result
The symbols are demangled.
Actual Result
The symbols aren't demangled. That being said I'm not sure if this is an issue with symbolic-demangle itself or if clang emitted buggy demangled symbols... it happened in the past already.
The text was updated successfully, but these errors were encountered: