wrong value with getPointerToGlobal

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() {
  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.

I figured out my problem. I am linking two modules and though the
pointer to the global was created in one of the source modules. So while
getPointerToglobal still seems happy to return an address, it is not the
address of the final linked variable.