运行 LLVM 通行证时出现分段错误。我需要在基本块的迭代“for”循环之外使用 BBterminators 数组。似乎 LLVMTerminatorInst *BasicBlock::getTerminator()
在遍历循环时不保护地址(注意:),所以我需要将 BBterminators 保存在类型的变量中Instruction
,而不是Instruction *
. 我怎样才能将整个复制Instructions
到BBterminators
?
for (Function::iterator II = F.begin(), EE = F.end(); II != EE; ++II, ++ii)
{
BasicBlock* BB = (dyn_cast<BasicBlock>(II));
if (BB->getTerminator())
{
Instruction *current = BB->getTerminator();
Instruction *previous = current->getPrevNode();
if (current->getOpcode() == Instruction::Br)
{
BBterminators[ii] = current;
在哪里Instruction **BBterminators = new Instruction *[100];