[Issue 21747] New: core.demangle does not understand function-local mangling
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon Mar 22 08:02:51 UTC 2021
https://issues.dlang.org/show_bug.cgi?id=21747
Issue ID: 21747
Summary: core.demangle does not understand function-local
mangling
Product: D
Version: D2
Hardware: x86
OS: Mac OS X
Status: NEW
Severity: enhancement
Priority: P1
Component: druntime
Assignee: nobody at puremagic.com
Reporter: pro.mathias.lang at gmail.com
Since the fix for issue 14831, the following code outputs the same value for
mangled and demangled names:
```
import core.demangle;
import std.meta;
import std.stdio;
void main ()
{
foreach (idx, T; AliasSeq!(int, char, bool, int, string, int, ubyte))
{
void checkValue (TT) (TT value, size_t id)
{
assert(id == idx);
assert(value == TT.init);
}
checkValue(T.init, idx);
writeln(" Mangled named: ", checkValue!T.mangleof);
writeln("Demangled named: ", checkValue!T.mangleof.demangle);
}
}
```
```
Mangled named: _D3foo4mainFZ__T10checkValueTiZQpMFNaNbNiNfimZv
Demangled named: pure nothrow @nogc @safe void
foo.main().checkValue!(int).checkValue(int, ulong)
Mangled named: _D3foo4mainFZ__T10checkValueTaZ5__S1QuMFNaNbNiNfamZv
Demangled named: _D3foo4mainFZ__T10checkValueTaZ5__S1QuMFNaNbNiNfamZv
Mangled named: _D3foo4mainFZ__T10checkValueTbZ5__S2QuMFNaNbNiNfbmZv
Demangled named: _D3foo4mainFZ__T10checkValueTbZ5__S2QuMFNaNbNiNfbmZv
Mangled named: _D3foo4mainFZ__T10checkValueTiZ5__S3QuMFNaNbNiNfimZv
Demangled named: _D3foo4mainFZ__T10checkValueTiZ5__S3QuMFNaNbNiNfimZv
Mangled named: _D3foo4mainFZ__T10checkValueTAyaZ5__S4QwMFNaNbNiNfQvmZv
Demangled named: _D3foo4mainFZ__T10checkValueTAyaZ5__S4QwMFNaNbNiNfQvmZv
Mangled named: _D3foo4mainFZ__T10checkValueTiZ5__S5QuMFNaNbNiNfimZv
Demangled named: _D3foo4mainFZ__T10checkValueTiZ5__S5QuMFNaNbNiNfimZv
Mangled named: _D3foo4mainFZ__T10checkValueThZ5__S6QuMFNaNbNiNfhmZv
Demangled named: _D3foo4mainFZ__T10checkValueThZ5__S6QuMFNaNbNiNfhmZv
```
--
More information about the Digitalmars-d-bugs
mailing list