[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>
wrote:

> 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