August 17, 2015 pragma(mangle) only works on functions | ||||
|---|---|---|---|---|
| ||||
I felt this was important enough to big over to the D general chat. Original Thread:http://forum.dlang.org/thread/zmmsodqrffvcdqidvodz@forum.dlang.org BBasile's Example: On Monday, 17 August 2015 at 04:32:47 UTC, BBasile wrote: > On Monday, 17 August 2015 at 02:46:02 UTC, Freddy wrote: >> I can't get pragma(mangle) to work on templates(or structs). >> [...] > > I don't know why but it looks like it only works on functions. Even if a struct is not a template the custom symbol mangle won't be handled: > > --- > import std.stdio; > > pragma(mangle, "a0") class MyClass{} > pragma(mangle, "a1") struct MyStruct{} > pragma(mangle, "a2") void body_func(); > pragma(mangle, "a3") struct MyStructh > { pragma(mangle, "a4") void foo(){}} > > void main() > { > writeln(MyClass.mangleof); > writeln(MyStruct.mangleof); > writeln(body_func.mangleof); > writeln(MyStructh.mangleof); > writeln(MyStructh.foo.mangleof); > } > --- > > which outputs: > > --- > C13temp_019455687MyClass > S13temp_019455688MyStruct > a2 > S13temp_019455689MyStructh > a4 > --- > > 'a4' being printed and not 'a3' is interesting BTW ;) > I think that the manual is not clear enough about this pragma: > > http://dlang.org/pragma.html#mangle > > Unless the spec. are more detailed this could be considered as a bug. | ||||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply