Who has a std.demangle that works with 0.177?
Lutger
lutger.blijdestijn at gmail.com
Thu Dec 21 07:08:42 PST 2006
Lionello Lunesu wrote:
> I'm writing a little program that generates a .di file from obj/lib.
>
> Needless to say, it makes heavy use of std.demangle, but that module was
> not updated for the changed name mangling in 0.177. My program works
> 'fine' for 0.176, but not for 0.177 (see results at end of mail).
>
> I saw some bugzilla entries related to the name mangling, but they are
> all pre-0.176, so not related to my problem.
>
> Can anybody tell me what needs to change in std.demangle? A patch perhaps?
>
> Thanks,
>
> L.
Try this:
insert the following at around line 200:
case 'M':
p = parseType();
goto L1;
This will take care of types that need a this pointer.
Then for nested types do as in that patch, change the following in
std.demangle (line 463-465) from:
if (ni != name.length)
goto Lnot;
return result;
to:
while(ni < name.length)
{
result ~= " . " ~ parseType(parseQualifiedName());
}
if (ni != name.length)
goto Lnot;
return result;
I believe that's it, correct me if I'm wrong.
More information about the Digitalmars-d
mailing list