Is there anyway by which I can identify whether the callee function is a user define or not? For example:
void foo()
{
printf("hello world again");
}
int main()
{
printf("hello world\n");
foo();
}
As in this case foo() is a user define, whereas printf() is a library function.
The method I'm currently using is to iterate over all the modules and check if its size is greater than 0 or not. i.e:
for(Module::iterator F = M.begin(); F != M.end(); ++F)
{
Function &Func = *F;
if(F->size()>0)
errs() << "User Define";
}
But am not sure about its accuracy?
You can use the isDeclaration
method to check whether the function is defined or just declared in the module. This will let you differentiate between functions whose implementation is in the module and function that are expected to be found outside it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With