我正在尝试获取alloca指令的用户(基本上获取变量的用户)。我使用以下代码来执行此操作:
virtual bool runOnModule(Module &M)
{
for(Module::iterator F= M.begin(), E = M.end(); F != E; ++F) // iterating over functions in a module
{
for (Function::iterator FI = F->begin(), E = F->end(); FI != E; ++FI) // iterating over BB in a function
{
for (BasicBlock::iterator I = FI->begin(), E = FI->end(); I != E; ++I) // iterating over instructions in the BB
{
Value* v = cast<Value>(I);
v->user_begin ();
}
}
}
return false;
}
然而,它给了我错误:
error: ‘class llvm::Value’ has no member named ‘user_begin’
任何人都可以告诉我为什么会这样,并建议一个可能的解决方案,我在这里尝试做什么(获取变量的用户)?
答案 0 :(得分:0)
我认为您可以直接使用user_begin而无需将指令转换为值。 就像:
I->user_begin()