[cfe-dev] Question about consistency of mangled link names

David Blaikie dblaikie at gmail.com
Sat Nov 29 09:28:11 PST 2014

On Sat, Nov 29, 2014 at 8:08 AM, Rodney M. Bates <rodney_bates at lcwb.coop>

> I am working on a project that entails writing calls in Modula3 code to C
> and C++ code in the llvm infrastructure.  For C, things are fine.  For C++,
> they are working, but I am having to put the mangled linker name in my
> binding.
> My questions are
> 1) Does the mangled linker name of a C++ nonmember function depend only on
> the
>    function signature?

Yes (mangling is there to support overloading and namespaces - since the
underlying symbol system doesn't support either, mangling is the task of
putting all the unique data about a function into the (mangled) name)

> 2) Do gcc and clang both mangle the same?

Yes - this is necessary for C++ libraries compiled with Clang to link
successfully with C++ libraries compiled with GCC.

(modulo bugs, edge cases, etc)

> If not, then I will probably need to do more work to produce C bindings
> similar to those in llvm-c/Core.h
> --
> Rodney Bates
> rodney.m.bates at acm.org
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20141129/1746ff13/attachment.html>

More information about the cfe-dev mailing list