Hello all, I have been playing around with the C++ wrapper for gccjit and have noticed a few things missing from the C API. I have written up four small patches to add the missing features. The patches include the following changes: new-function-ptr-type.patch: Adds a method on 'context' to create a new function pointer type. new-union-type.patch: Adds a method on 'context' for creating a new union type. This also adds a 'union_' class like 'struct_' which subclasses 'type'. set_fields.patch: Adds a method to 'struct_' for setting the fields of an opaque struct type. The C++ wrapper already allowed creation of opaque structs but didn't have a way to populate them for creating recusive structures like linked lists. operator-call.patch: Adds a variadic dispatch for 'function::operator()' when compiling with C++11 support. This extends 'function(a, b, c, ...) for arbitrary amounts of arguments without needing to create a vector to pass the arguments in. Right now this just dispatches through the vector case but could be changed to use a 'std::array' in the future. This is mostly just to simplify the API for fixed arity calls which have a lot of arguments. Currently all of these patches are missing tests. I found the C tests but didn't see anything for the C++ API. I would love to add some cases for these but I just don't know where to look. This is my first time posting to any of the GCC mailing lists or working on GCC at all so please let me know if this is not the correct place to post this or if I have done something incorrectly. Thank you for your time!