Hey guys,
I’m wondering if there is a way to write an llvm pass to get the class name of the functions. I am not talking about the simple self-written functions like foo::bar(…), but those STL container functions like ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8, demangles as std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >::operator()(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) const. In this case, the class name should be std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, and the function name is operator().
I have tried to do this with clang tools, but the template parameters are not expanded and you can get pretty less information, which is not what I am looking for.
PS. This is specifically for C++.
Any help would be appreciated!
Jason