isa<PointerType>(FTy->getParamType(1)) &&
isa<PointerType>(FTy->getParamType(2))) {
int (*PF)(int, char **, const char **) =
- (int(*)(int, char **, const char **))FPtr;
+ (int(*)(int, char **, const char **))(intptr_t)FPtr;
// Call the function.
GenericValue rv;
if ((FTy->getParamType(0) == Type::IntTy ||
FTy->getParamType(0) == Type::UIntTy) &&
isa<PointerType>(FTy->getParamType(1))) {
- int (*PF)(int, char **) = (int(*)(int, char **))FPtr;
+ int (*PF)(int, char **) = (int(*)(int, char **))(intptr_t)FPtr;
// Call the function.
GenericValue rv;
(FTy->getParamType(0) == Type::IntTy ||
FTy->getParamType(0) == Type::UIntTy)) {
GenericValue rv;
- int (*PF)(int) = (int(*)(int))FPtr;
+ int (*PF)(int) = (int(*)(int))(intptr_t)FPtr;
rv.IntVal = PF(ArgValues[0].IntVal);
return rv;
}
switch (RetTy->getTypeID()) {
default: assert(0 && "Unknown return type for function call!");
case Type::BoolTyID:
- rv.BoolVal = ((bool(*)())FPtr)();
+ rv.BoolVal = ((bool(*)())(intptr_t)FPtr)();
return rv;
case Type::SByteTyID:
case Type::UByteTyID:
- rv.SByteVal = ((char(*)())FPtr)();
+ rv.SByteVal = ((char(*)())(intptr_t)FPtr)();
return rv;
case Type::ShortTyID:
case Type::UShortTyID:
- rv.ShortVal = ((short(*)())FPtr)();
+ rv.ShortVal = ((short(*)())(intptr_t)FPtr)();
return rv;
case Type::VoidTyID:
case Type::IntTyID:
case Type::UIntTyID:
- rv.IntVal = ((int(*)())FPtr)();
+ rv.IntVal = ((int(*)())(intptr_t)FPtr)();
return rv;
case Type::LongTyID:
case Type::ULongTyID:
- rv.LongVal = ((int64_t(*)())FPtr)();
+ rv.LongVal = ((int64_t(*)())(intptr_t)FPtr)();
return rv;
case Type::FloatTyID:
- rv.FloatVal = ((float(*)())FPtr)();
+ rv.FloatVal = ((float(*)())(intptr_t)FPtr)();
return rv;
case Type::DoubleTyID:
- rv.DoubleVal = ((double(*)())FPtr)();
+ rv.DoubleVal = ((double(*)())(intptr_t)FPtr)();
return rv;
case Type::PointerTyID:
- return PTOGV(((void*(*)())FPtr)());
+ return PTOGV(((void*(*)())(intptr_t)FPtr)());
}
}
MutexGuard locked(TheJIT->lock);
/// Get the target-specific JIT resolver function.
state.getStubToFunctionMap(locked)[Location] = F;
- return (void*)LazyResolverFn;
+ return (void*)(intptr_t)LazyResolverFn;
}
/// getGOTIndexForAddress - Return a new or existing index in the GOT for
// Call the lazy resolver function unless we already KNOW it is an external
// function, in which case we just skip the lazy resolution step.
- void *Actual = (void*)LazyResolverFn;
+ void *Actual = (void*)(intptr_t)LazyResolverFn;
if (F->isExternal() && F->hasExternalLinkage())
Actual = TheJIT->getPointerToFunction(F);
// resolver function.
Stub = TheJIT->getJITInfo().emitFunctionStub(Actual, MCE);
- if (Actual != (void*)LazyResolverFn) {
+ if (Actual != (void*)(intptr_t)LazyResolverFn) {
// If we are getting the stub for an external function, we really want the
// address of the stub in the GlobalAddressMap for the JIT, not the address
// of the external function.