%call = call i8* @malloc(i64 12)
比如有这么一段IR,我想要得到malloc中的参数12:
void TableBuilder::extract_info(const CallInst *ins_ptr) {
auto fn = ins_ptr->getCalledFunction();
errs() << ins_ptr->getNumOperands() << "\n";
if (fn) {
if (fn->getName() == "malloc") {
for (auto arg = ins_ptr->arg_begin(); arg != ins_ptr->arg_end(); ++ arg) {
if (auto val = dyn_cast<ConstantInt>(arg)) {
errs() << val->getZExtValue() << "\n";
}
}
}
}
}
注意这里要用CallInst
指针,而不能用Function*
,这里被坑了好久。。。