我有一个CallInst类型的对象。如何从中获取被调用的函数名称。假设直接调用该函数。

最佳答案

StringRef get_function_name(CallInst *call)
{
    Function *fun = call->getCalledFunction();
    if (fun) // thanks @Anton Korobeynikov
        return fun->getName(); // inherited from llvm::Value
    else
        return StringRef("indirect call");
}

无论如何,这就是文档的含义:
  • CallInst
  • CallInst::getCalledFunction
  • 返回Function
  • 并返回继承图,直到看到一个合理的候选对象:
  • Value
  • Value::getName
  • 关于c++ - 如何从LLVM中的CallInst获取函数名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11686951/

    10-11 16:28