2
LLVM関数呼び出しを作成しています。その呼び出しに引数としてvoidポインタを渡すにはどうしたらいいですか?私の関数として "_testFunc"があり、引数としてvoidポインタを渡す必要があります。LLVMへのvoidポインタの転送IRBuilder CreateCall
llvm::Function *testFunc= m_mod->getFunction("_testFunc");
llvm::IRBuilder<> builder(instruction.getNextNode());
llvm::Value *arg = argument is void pointer
builder.CreateCall(testFunc, arg);
したがって、このarg
は、無効なポインタである必要があります。
void *の型が必要です。私はllvmの新機能です。CreateCall()の引数としてどうやって取得するのか教えてください。 – st91
void *を渡すか、関数宣言でvoid *型を使用しますか?私はあなたが求めているものと混同しています。 –
変数型または引数型にvoid *型を指定する場合は、i8 *を使用します。すべてのポインタはメモリ内で同じサイズですので、i8 *はプログラムが実際に実行されたときのvoid *と等価です。実際のコードでは、型は "llvm :: Type :: getInt8PtrTy(llvm_context)"として表されます。 –