[llvm-dev] How to implement function pointer?

Philip Pfaffe via llvm-dev llvm-dev at lists.llvm.org
Tue Feb 26 03:18:41 PST 2019


Hi Yafei,

you're looking for the [FunctionType](
http://llvm.org/doxygen/classllvm_1_1FunctionType.html).

Cheers,
Philip

On Tue, Feb 26, 2019 at 11:15 AM Yafei Liu via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Hi, I'm learning to use llvm api to generate IR code, I got two good
> tutorials, https://llvm.org/docs/tutorial/ and
> https://www.ibm.com/developerworks/library/os-createcompilerllvm1/index.html,
> but non of those showed how to implement a function pointer(or at least
> there is but I didn't find out).
>
> For example I got a c style code like this:
>
> int foo(int i) {
>   return ++i;
> }
>
> int (*p)(int);
>
> int main() {
>   p = foo;
>   p(3);
> }
>
> I turn it into IR code and found the sytex of a function pointer is:
> @p = global i32 (i32)* null, align 8
> I tried play with llvm::PointerType but I cannot get the sytex, so could
> anyone teach me how to do this?
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190226/d61515fb/attachment.html>


More information about the llvm-dev mailing list