编译器似乎没有找到 class llvm::Instruction 的成员函数

compiler doesn't seem to find a member function of class llvm::Instruction

我是 llvm 代码的新手,如果指令满足某些条件,我会尝试对其进行转义。我试图为逃生做的是使用 Instruction::getNextNonDebugInstruction() 函数,它在我编译时给我这个错误:

‘class llvm::Instruction’ has no member named ‘getNextNonDebugInstruction’;

这没有意义,因为我们可以看到 getNextNonDebugInstruction() 是 public 并且是指令 class:

中的现有成员

https://llvm.org/doxygen/classllvm_1_1Instruction.html#ae7b05782d5230743f5dda7825f0ebd88

这是我的代码:

llvm::Instruction* inst_ = ki->inst;

if(isa<CallInst>(inst_) && str.find("bpf")!= std::string::npos)
      {
        llvm::Instruction* next_inst = inst_->getNextNonDebugInstruction();

      }

该函数大约在一年前添加到 LLVM 代码库中(参见 https://github.com/llvm/llvm-project/commit/f01827f2d1bdaff14cf1cf176e8a69e308d5371e)。听起来您的版本不包含该更改。