You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It looks like LLVM doesn't like using void* for opaque pointers. Trying to compile some LLVM IR actually gave me a useful hint:
$ /usr/local/Cellar/llvm/4.0.0_1/bin/opt add.ll
/usr/local/Cellar/llvm/4.0.0_1/bin/opt: add.ll:6:22: error: pointers to void are invalid - use i8* instead
define i32 @main(void*) {
Apparently, at least until opaque pointer types come to LLVM IR, the right type to use for this sort of thing is a pointer to 8-bit integers.
One easy way to do this would be to define a constant for the i8* type (called FUNCTION_ENV_TYPE?) and then use it wherever we currently have llvm.PointerType.create(llvm.VoidType.create(), 0).
The text was updated successfully, but these errors were encountered:
Got it! I'll try fixing that within the next day or two a put in a new pull request.
If you remember, I mentioned the other day that there was also a bug where the function environment function pointer was not being initialized properly. So I'll try including the fix for that in my pull request as well.
It looks like LLVM doesn't like using void* for opaque pointers. Trying to compile some LLVM IR actually gave me a useful hint:
Apparently, at least until opaque pointer types come to LLVM IR, the right type to use for this sort of thing is a pointer to 8-bit integers.
One easy way to do this would be to define a constant for the i8* type (called
FUNCTION_ENV_TYPE
?) and then use it wherever we currently havellvm.PointerType.create(llvm.VoidType.create(), 0)
.The text was updated successfully, but these errors were encountered: