我正在从LLVM写一个模块传递。我需要处理bitcode中存在的所有功能,但同时我需要确保我不会改变对我不感兴趣的功能,即我不想考虑这些功能这些不是源文件。怎么做?
考虑以下测试文件
#include <iostream>
using namespace std;
int testCall()
{
return 1;
}
class test
{
int a;
public:
test()
{
a = 0;
}
test(int b)
{
a = b;
}
void foo1()
{
a =2;
}
void fun()
{
a = 3;
}
};
int main()
{
testCall();
test *a = new test(2);
test *b = new test(4);
a->foo1();
a->fun();
b->fun();
cout << "Hi" << "\n";
return 0;
}
我只对找到上面定义的函数感兴趣,而不是LLVM函数/模块检测到的其他函数作为函数传递。这些包括具有像
这样的Demangled Names的函数 1)std::ios_base::Init::Init()
2)std::ios_base::Init::~Init()
3)std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
在执行我的功能/模块传递时,我不想考虑这些功能。 怎么做?