我的模块传递尝试用函数调用栏替换函数调用foo。这些函数可能具有不同的参数和返回类型。我尝试了以下代码段,但收到“属性错误的错误类型”。替换不同类型的功能的最佳方法是什么?
if (CallInst *call_inst = dyn_cast<CallInst>(&*i)) {
if ((call_inst->getCalledFunction()) != nullptr) {
if (strstr(call_inst->getCalledFunction()->getName().data(), "foo") != NULL){
call_inst->setCalledFunction(bar);
}
}
}