Как правильно вызвать определенную функцию с аргументами в llvm

Мое определение функции выглядит следующим образом, это простая функция:

      void __test_function2(int a)
{
    printf("%d\n",a);
}

И я хотел бы вызвать функцию, перебирая каждый базовый блок в проходе и вставляя оператор вызова, который я делаю следующим образом.

      std::vector<Type*> testVct;
testVct.push_back(Int32Ty);
ArrayRef<Type *> testArgs(testVct);

FunctionType *testTy2 = FunctionType::get(Type::getVoidTy(*Ctx),testArgs,false);
FunctionCallee callee_test2 = M.getOrInsertFunction("__test_function2",testTy2);

Value *testArgs_[] = {IRB.getInt32(inst_blocks)};
IRB.CreateCall(callee_test2,testArgs_, //need opbundles);

По результату ошибки у меня отсутствуют opbundles, но я не знаю что это такое и как мне получить этот параметр. Может кто-нибудь сказать мне, что делать. Спасибо.

0 ответов

Другие вопросы по тегам