Abh*_*ain 7 llvm llvm-clang llvm-ir llvm-c++-api
无论如何,我可以确定被调用函数是否是用户定义?例如:
void foo()
{
printf("hello world again");
}
int main()
{
printf("hello world\n");
foo();
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,foo()是用户定义,而printf()是库函数.
我目前使用的方法是迭代所有模块并检查其大小是否大于0.即:
for(Module::iterator F = M.begin(); F != M.end(); ++F)
{
Function &Func = *F;
if(F->size()>0)
errs() << "User Define";
}
Run Code Online (Sandbox Code Playgroud)
但我不确定它的准确性?