-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
I came across a few symbols which weren't being demangled correctly by this tool.
@248@__dt__11SndAudioMgrFv: fails to demangle, should benon-virtual thunk to SndAudioMgr::~SndAudioMgr().@8@4@f__2C1Fv: fails to demangle, should bevirtual thunk to C1::f()ptm__FM3Clsi: fails to demangle, should beptm(int Cls::*).
Yeah, apparently PTMs without the F are a thing.f__Fr: fails to demangle, should bef(long double).mDoExt_J3DModel__create__FP12J3DModelDataUlUl: fails to demangle, should bemDoExt_J3DModel__create(J3DModelData*, unsigned long, unsigned long).
For this one, the strategy I used here was to look for the pattern__[CFQ0123456789]to find the true delimiter between method name and the rest of the symbol, but of course that could still fail. I'm not sure if there's an easy rule to always find the correct delimiter...@LOCAL@drawQuad__20dDrawShadowProjMap_cFv@c_scale@3: fails to demangle, should bedDrawShadowProjMap_c::drawQuad()::c_scale@STRING@__ct__19MarioLauncherLayoutFv: fails to demangle, should beMarioLauncherLayout::MarioLauncherLayout()::string literal(note that this can also have an@<number>at the end, such as@STRING@init__19MarioLauncherLayoutFRC12JMapInfoIter@1)
And a bonus symbol, if you're up for the challenge:
__opM5ClassFPCvPCv_M5ClassFPCvPCv_PA4_f__5ClassCFv, should demangle to Class::operator float (* (Class::* (Class::*)() const)() const) [4]() const (...or at least according to c++filt after compiling with g++. This isn't a valid C++ declaration, typedefs are required for this I believe)
I can provide source samples for replicating these symbols, if you need any.
Metadata
Metadata
Assignees
Labels
No labels