Jacob Carlborg <[email protected]> writes: > On 2015-04-20 18:33, Dan Olson wrote: >> An observation on OSX w/ 2.067: mangleof for C++ (and D) names produces >> the actual object file symbol while mangleof for C names strips a >> leading underscore. >> >> Is this intended? If so what is rationale? > > I don't think it's intentional. The point of "mangleof" is to evaluate > to the actual mangled name, as it appears in the object file.
Thanks Jacob. In that case, mangleof for extern(C) names on OS X and other systems that add a leading underscore should include the underscore. extern(C) int x; version(linux) pragma(msg, foo.mangleof); // "x" version(OSX) pragma(msg, foo.mangleof); // "_x" I'm trying to understand because ldc is different than dmd, and it is related to proper debugging on systems with leading underscores. pragma(mangle, name) is wrapped up in this too. This needs to be right to help D expand to other systems. -- Dan
