Who has a std.demangle that works with 0.177?
Lionello Lunesu
lionello at lunesu.remove.com
Thu Dec 21 14:05:38 PST 2006
Thanks! I'll give it a try..
L.
"Lutger" <lutger.blijdestijn at gmail.com> wrote in message
news:eme81p$1m6n$1 at digitaldaemon.com...
> 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