[LLVMdev] compiling a call to function in compiler
Eric Christopher
echristo at apple.com
Mon Jan 17 17:36:39 PST 2011
On Jan 17, 2011, at 5:01 PM, Rob Nikander wrote:
> Hi,
>
> I'm trying to follow the advice from this message:
> http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-October/017574.html,
> to create a call instruction from a function pointer. But I'm
> getting...
>
> Assertion failed: (isa<X>(Val) && "cast<Ty>() argument of
> incompatible type!"),
> function cast, file /usr/local/include/llvm/Support/Casting.h, line 202.
>
> Code snippets...
>
> id testfunc(id a, id b) { ... }
> ...
> FunctionType *fn_type = FunctionType::get(id_type, argtypes, false);
> Value *fn = ConstantExpr::getIntToPtr(ConstantInt::get(int64_type,
> reinterpret_cast<int64_t>(testfunc)), fn_type);
> return builder.CreateCall2(fn, arg0val, arg1val); // <--
> assertion fails here
>
> What am I doing wrong? I can paste more code if needed.
One of the types doesn't match the types of what you are trying to pass.
You should debug which one it is and why the types aren't matching what
you think they should be.
-eric
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110117/aefb7e2e/attachment.html>
More information about the llvm-dev
mailing list