[LLVMdev] Passing a pointer to a function

Eli Friedman eli.friedman at gmail.com
Wed May 20 19:45:59 PDT 2009


On Wed, May 20, 2009 at 7:31 PM, Scott Ricketts <sricketts at maxentric.com> wrote:
> Where load_fcall is build using a call to Module::getOrInsertFunction
> as in the example here:
>
> http://wiki.llvm.org/HowTo:_Insert_a_function_call
>
> My question is, what do I pass as the argument type for P above? The
> following seems to work, as long as there are no floating point ops:

I would suggest bit-casting p to an i8*.

> So I tried using just a void pointer type, as in:
> PointerType::getUnqual(Type::VoidTy)
>
> But then Type.cpp throws this assertion.
> Assertion `ValueType != Type::VoidTy && "Pointer to void is not valid,
> use sbyte* instead!"' failed.

Yeah, void* in C == i8* in LLVM.  VoidTy is only used for function return types.

I'm not sure why you're getting crashes with the last approach; it
looks like it should work.

-Eli



More information about the llvm-dev mailing list