Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upMangled names #34
Mangled names #34
Comments
|
I see what I can do about it. |
|
I would be very careful with this. While libclang exposes mangled entity names, these names are specific to the clang compiler (Actually, clang on linux implements itanium iirc). Also nothing prevents LLVM to change the symbol mangling scheme between versions, so you're not guaranteed that your cppast running say libclang 3.8 would work with your lib compiled with 4.0 for example. |
|
CppSharp project successfully uses mangled names from llvm/clang though. |
|
Oh, I see they explicitly support Itanium and MS ABIs, interesting. Thanks for pointing out, I'm curious how they're handling the MSVC case. |
|
Clang does support msvc ABI. https://clang.llvm.org/docs/MSVCCompatibility.html |
|
I am also highly interested in mangled names. Libclang directly supports it https://clang.llvm.org/doxygen/group__CINDEX__MANGLE.html and selects the right mangling depending on the platform. |
|
Okay, I'll add it. Because I don't have access to the CXCursor (and can't, by design), I'd probably have to add a std::string to cpp_entity, bloating everything again. I could also store it in the |

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.

Would it be possible to expose mangled names? It could be very helpful when generating API wrappers for foreign languages.