[LLVMdev] Accessing a function's arguments
Brian Ensink
ensink at cs.uiuc.edu
Fri Oct 11 17:30:01 PDT 2002
Just a followup for the archives ...
> I am trying to generate a simple wrapper function:
>
> Function* pWrapper = m_module.getOrInsertFunction(name,
> FunctionType::get(Type::VoidTy,
> vector<const Type*>(1, PointerType::get(Type::IntTy)), false));
>
> How do I actually get the Value* for the one argument to this function?
> The pWrapper->getArgumentList().size() is 0. Shouldn't the argument list
> contain the Value* for the parameter?
My incorrect assumption was that the ArgumentList would get built when the
Function is instantiated -- by simply walking over the parameter type vector
of the FunctionType.
Instead you have to manually fill in the ArgumentList but this also gives you
the opportunity to specify a name for each argument. In my case all I needed
to add was one line of code to create the only argument:
new Argument(PointerType::get(Type::IntTy), "arg", pWrapper);
--
Brian Ensink www-sal.cs.uiuc.edu/~ensink
Graduate Student, University of Illinois at Urbana-Champaign
More information about the llvm-dev
mailing list