编译器似乎没有找到类 llvm::Instruction 的成员函数
Posted
技术标签:
【中文标题】编译器似乎没有找到类 llvm::Instruction 的成员函数【英文标题】:compiler doesn't seem to find a member function of class llvm::Instruction 【发布时间】:2019-05-10 14:28:03 【问题描述】:我对 llvm 代码非常陌生,如果指令满足某些条件,我会尝试转义它。我试图为转义做的是使用Instruction::getNextNonDebugInstruction()
函数,它在我编译时给了我这个错误:
‘class llvm::Instruction’没有名为的成员 ‘getNextNonDebugInstruction’;
这没有任何意义,因为我们可以看到 getNextNonDebugInstruction()
是 Instruction 类中的一个公开且存在的成员:
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();
【问题讨论】:
【参考方案1】:该函数大约在一年前被添加到 LLVM 代码库中(参见 https://github.com/llvm/llvm-project/commit/f01827f2d1bdaff14cf1cf176e8a69e308d5371e )。听起来您的版本不包含该更改。
【讨论】:
以上是关于编译器似乎没有找到类 llvm::Instruction 的成员函数的主要内容,如果未能解决你的问题,请参考以下文章