Who has a std.demangle that works with 0.177?

Lionello Lunesu lio at lunesu.remove.com
Thu Dec 21 06:33:29 PST 2006


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.

module somesym;
interface some_interface {    // (*)
     void dump();
}
class some_class : some_interface {
     void member() { printf("pseop"); }

     this() { printf("this"); }
     ~this() { printf("~this"); }

     final void final_func() {}

     struct nested{
	int a=void;
	void nestedmember(){ printf("%i",a);}
     }	
     nested structmember;
     void dump() { printf("dump"); }
}


0.176:

somesym: void some_class.member();
somesym: class some_class somesym.some_class._ctor();
somesym: void some_class._dtor();
somesym: void some_class.final_func();
somesym: Z some_interface.__Interface;
somesym: void some_class.nested.nestedmember();
somesym: void some_class.dump();
somesym: Z some_class.nested.__init;
somesym: Z some_class.__init;
somesym: Z some_class.__Class;
somesym: Z some_class.__vtbl;

0.177:

somesym: MFZv some_class.member;
somesym: MFZC7somesym10some_class some_class._ctor;
somesym: MFZv some_class._dtor;
somesym: MFZv some_class.final_func;
TypeInfo_S7somesym10some_class6nested: Z __init;
somesym: Z some_interface.__Interface;
somesym: MFZv some_class.nested.nestedmember;
somesym: MFZv some_class.dump;
somesym: Z some_class.nested.__init;
somesym: Z some_class.__init;
somesym: Z some_class.__Class;
somesym: Z some_class.__vtbl;


* Of course, interfaces will not be supported since their members don't 
generate any symbols. (Would be cool if they did though, perhaps a 
{assert(0);} default implementation?)



More information about the Digitalmars-d mailing list