Замена функции в llvm на разные типы - PullRequest
0 голосов
/ 16 апреля 2019

Мой проход модуля пытается заменить вызов функции 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);
    } 
  }   
}
...