Function pointer handling

Bartosz Szreder bartosz.szreder@huuugegames.com
Sun Jan 1 00:00:00 GMT 2017


I have some questions regarding pointers to functions in current (7.2)
version of GCC-JIT.

1. The documentation doesn't mention existence of
gcc_jit_context_new_function_ptr_type() as a mechanism of handling
function pointers, yet contains
gcc_jit_context_new_call_through_ptr().

- Is the former function unsupported/buggy in some way and is not
indented for general use, or just lacks proper documentation?

- What is the proper way of obtaining a function pointer to be passed
to gcc_jit_context_new_call_through_ptr()? There doesn't seem to be
any counterpart to gcc_jit_lvalue_get_address() for functions. As the
name suggests, gcc_jit_lvalue_get_address() works on an L-value and
gcc_jit_function type isn't an ancestor of gcc_jit_lvalue in the
internal type system, therefore upcasting is impossible.

2. Is it safe to pass a function pointer as a GCC_JIT_TYPE_VOID_PTR
and use gcc_jit_context_new_call_through_ptr() on such value?

Thanks,
Bartosz Szreder



More information about the Jit mailing list