[LLVMdev] How do clang & clang++ choose function names for LLVM IR?

Alex L arphaman at gmail.com
Thu Jun 12 09:02:06 PDT 2014


Hi David,

Function names for C++ have to be mangled for various reasons - see
http://en.wikipedia.org/wiki/Name_mangling for more details.
You can use a function called __cxa_demangle from libcxxabi to get the
demangled function name.


2014-06-11 13:45 GMT-07:00 David Glanzman <davidglanzman at yahoo.com>:

> Hello all,
>
> I'm getting started on a project using LLVM's opt tool to do static
> analysis, printing call graphs and such.  When compiling C programs to IR
> (and eventually to call graphs), function names remain the same (main,
> function1, function2 etc.), but when compiling the same program as C++, the
> function names often have cruft added to them (_Z9function1v, _Z9function2v
> etc.) which doesn't make for a very pretty graph.
>
> Why are these extra characters added when going to IR from C++, but not
> C?  I'm interested in what they're for and if there's anyway to avoid them
> for the sake of making nice graphs.
>
> Thanks,
> David Glanzman
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140612/9e67b43f/attachment.html>


More information about the llvm-dev mailing list