[llvm-dev] mcjit C interface problems
Andres Freund via llvm-dev
llvm-dev at lists.llvm.org
Wed Jan 25 18:30:35 PST 2017
Hi,
On 2017-01-25 18:16:09 -0800, Toshiyasu Morita wrote:
> Thanks for the tip - getting closer:
>
> $ ./capi_test 5 6
> args[0]: 5
> args[1]: 6
> result: 4294959200
>
> Here's the code I changed:
>
> printf("args[0]: %d\n", (int)LLVMGenericValueToInt(args[0], 0));
> printf("args[1]: %d\n", (int)LLVMGenericValueToInt(args[1], 0));
>
> uint64_t (*func)();
> func = (uint64_t (*)())LLVMGetFunctionAddress(engine, "sum");
> printf("result: %lu\n", (*func)());
You're calling the function without arguments, but it's (in IR) declared
to take two. And you're miscasting the return value to be int64, instead
of int32 as the function's declared.
Andres
More information about the llvm-dev
mailing list