[LLVMdev] How to get the original function name in C++?
Nick Lewycky
nicholas at mxc.ca
Thu Dec 11 12:24:04 PST 2014
Welson Sun wrote:
> If you want to get the original name by a library function, as Jonathan
> mentioned, you can call __cxa_demangle in cxxabi.h. However, this API is
> only available in gcc.
Huh? It's defined in the C++ ABI standard:
http://mentorembedded.github.io/cxx-abi/abi.html#demangler
There are implementations in libstdc++, libcxxabi and libcxxrt.
If you want something more portable, try glog or
> libibert, notice libibert is GPL licensed.
>
> On Thu, Dec 11, 2014 at 7:57 AM, Roel Jordans <r.jordans at tue.nl
> <mailto:r.jordans at tue.nl>> wrote:
>
> When a C++ compiler translates source code it will perform name
> mangling to avoid name collisions due to type overloading. You can
> use a tool like c++filt to de-mangle the generated names
>
> Cheers,
> Roel
>
>
> On 11/12/14 11:52, zy jj wrote:
>
> Hi, everyone!
> I'm new here trapped by a simple problem for days.
> When LLVM translates C++ source code to IR, it will add a
> prefix to
> the function name. For example:
> source code:
> int foo(){
> return 1;
> }
> IR form:
> define i32 @_Z3foov() #0 {
> entry:
> ret i32 1, !dbg !20
> }
> The getName() method returns _Z3foov, then how can I get
> foo? I
> know the debugging information is contained in metadata, but I've no
> idea on using it.
> Thanks a lot for any help.
>
>
>
>
> ______________________________ _________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu>
> http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/ mailman/listinfo/llvmdev
> <http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev>
>
> ______________________________ _________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu> http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/ mailman/listinfo/llvmdev
> <http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev>
>
>
>
>
> --
> - Welson
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list