Getting rid of the dangling names of functions

Hi all,

I am a beginner in llvm trying to write some basic passes like printing the name of all the functions in “Hello.cpp” file attached underneath. Also find attached “hello.cpp” on which i am testing the pass .When i run the command:
“opt -load $HOME/llvm/src/Debug/lib/TEMP.so -hello < hello.bc > /dev/null” .The output shown is

Hello: _GLOBAL__I_x
Hello: main
Hello: _Z4rajuif
Hello: _Z4brtyv
Hello: _Z4rajui
Hello: __tcf_0

But we want output to be

Hello: main
Hello: raju
Hello: brty
Hello: raju

How can we get this …??

Hello.cpp (1.21 KB)

hello.cpp (200 Bytes)

The names are mangled according the the C++ name mangling rules of
your platform. Try piping the output through c++filt.

Reid

You're seeing the mangled names since you're compiling a C++ file, so you'll need to run them through a demangler to get the names used in the source code. There's one in libstdc++, I believe.