呼び出し先関数がユーザー定義かどうかを識別する方法はありますか? 例えば:
void foo()
{
printf("hello world again");
}
int main()
{
printf("hello world\n");
foo();
}
この場合、foo() はユーザー定義ですが、printf() はライブラリー関数です。
私が現在使用している方法は、すべてのモジュールを繰り返し処理し、そのサイズが 0 より大きいかどうかを確認することです。すなわち:
for(Module::iterator F = M.begin(); F != M.end(); ++F)
{
Function &Func = *F;
if(F->size()>0)
errs() << "User Define";
}
しかし、その精度について確信が持てませんか?