[dmd-internals] Correction to name mangling doc
Sean Kelly
sean at invisibleduck.org
Mon Aug 30 14:22:42 PDT 2010
I'd love for the current scheme to be considered a bug because it requires arbitrary lookahead to determine whether a symbol represents a template (see demangle.parseSymbolName, for example). If the leading Number were removed then testing for template vs. LName would basically be a matter of checking for a digit vs. underscore. For symbol names I've always followed C conventions, but I don't think the compiler restricts symbol names at all.
On Aug 30, 2010, at 1:00 PM, Don Clugston wrote:
> I'm not sure. See bug 3034 "Template instance name wrongly mangled as
> LName". I don't know if that bug report is valid -- is it legal to
> have a module name which starts with double underscores??? It does
> seem to be accepted, though.
>
> We need to either change the spec and mark the bug as invalid, or else
> change the compiler and leave the spec as-is.
> Another related mangling bug is 3043 "Template symbol arg cannot be
> demangled", which I think is probably invalid.
>
> On 30 August 2010 21:20, Sean Kelly <sean at invisibleduck.org> wrote:
>> The ABI says this:
>>
>> TemplateInstanceName:
>> __T LName TemplateArgs Z
>>
>> and I think it should be:
>>
>> TemplateInstanceName:
>> Number __T LName TemplateArgs Z
>>
>> Any objection to my fixing it?
>> _______________________________________________
>> dmd-internals mailing list
>> dmd-internals at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/dmd-internals
>>
> _______________________________________________
> dmd-internals mailing list
> dmd-internals at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-internals
More information about the dmd-internals
mailing list