Hi Paul,
> AFAIK, if I want to call an external C function from IR code, I need to use
Function::Create() to create a Function whose signature matches the external C
function, then call ExecutionEngine::addGlobalMapping() to "bind" the
LLVM Function to the external C function (right?).
>
> Assuming that's correct, if the external C function is declared:
>
> void foo(long);
>
> how can I know whether to call Type::getInt32Ty() or Type::getInt64Ty()
when creating the argument types vector that will be passed to
Function::Create()? I.e., how do I know how big a C 'long' is on a
given platform?
if you are willing to assume that the size of long is the same as the size of a
pointer then you can use getIntPtrType from TargetData.
Ciao, Duncan.