I'm having some trouble getting access to a global variable with
getPointerToGlobal. The resulting value is not what I am expecting.
My assembly looks something like this:
@gresult = global i32 undef
define i32 @eval_expr() {
entry:
...
store i32 %3, i32* @gresult
ret i32 %3
}
Where "gresult" is created with:
auto global = new llvm::GlobalVariable( *module, int32Type,
/*constant*/false, llvm::GlobalValue::ExternalLinkage, /*init*/0,
"gresult" );
I run the function and get the results with:
llvm::GenericValue gv = ee->runFunction( funcPtr, args/*empty*/ );
void * gptr = ee->getPointerToGlobal( global );
gv.IntVal has the correct value, but *static_cast<int32_t*>(gptr) does not.