Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
See the comment inline. If you have an example of mangled symbols starting with ___Z, you might consider adding a test for it.
tools/llvm-nm/llvm-nm.cpp | ||
---|---|---|
668–669 ↗ | (On Diff #104222) | I'm aware that Itanium mangled symbols start with _Z but I'm not aware of the ___Z prefix, do you have an example? |
tools/llvm-nm/llvm-nm.cpp | ||
---|---|---|
668–669 ↗ | (On Diff #104222) | I'm mostly cargo culting this from elsewhere in the codebase. See tools/llvm-cxxdump/llvm-cxxdump.cpp. It does a lot of checking for _Z symbols and it always checks for the double under version as well. tools/llvm-objdump/MachODump.cpp seems to only check for the double under version. tools/llvm-cxxfilt/llvm-cxxfilt.cpp checks both. git grep __Z seems to indicate that its the Mach-O format the includes the extra _ which would explain why MachODump.cpp only checks for that. I'll dig a bit deeper and try to add another test. |
I'm fine with this but I'd appreciate another pair of eyes as it's been a while since I touched the dumpers.
tools/llvm-nm/llvm-nm.cpp | ||
---|---|---|
759 ↗ | (On Diff #104266) | Do you need a copy here? |
llvm/trunk/tools/llvm-nm/llvm-nm.cpp | ||
---|---|---|
667 | The macho files that llvm generates certainly seem too (see the tests code in this CL). It seems they always add the "_", so you either get "__Z" of MachO and "_Z" on Elf. One or the other, not both. Based purely on the empirical behaviour of llvm today. |
This may be a dumb question, but does MachO use the Itanium mangling scheme?
Does it use both "__Z" and "_Z" as prefixes?