2
呼び出された関数を別のモジュールに抽出しようとしています。関数が定義された数の引数を持っていれば成功です。LLVMでは、可変数の引数を持つ関数を挿入/宣言する方法は?
// Create the arguments vector from the my argument list
SmallVector<Type *, sizeof(MyArgs)> ArgTys;
for (Value *V : MyArgs)
ArgTys.push_back(V->getType());
// Just get a void return type
Type *RetTy = Type::getVoidTy(TempContext);
// Create a new function with MyArgs as arguments
Constant *C = TempM->getOrInsertFunction(
"TempF", FunctionType::get(RetTy, ArgTys, false));
しかし、関数は引数の可変数を持っている場合、getOrInsertFunction
は唯一私がArgTys
にMyArgs
でキャプチャすることができたの引数を追加します。
ソース関数に可変数の引数があるかどうかを確認するにはどうすればよいですか?
getOrInserFunctionを使用して可変数の引数を持つ関数を宣言するにはどうすればよいですか? documentationによると
を備えた可変引数リストを使用している場合は、照会することができます。完全に見過ごされた 'FunctionType :: get'とその3番目の引数。ありがとうございました – nico