+2014-12-01 David Malcolm <dmalcolm@redhat.com>
+
+ PR jit/63854
+ * jit-builtins.c
+ (gcc::jit::recording::builtins_manager::make_fn_type): Call the
+ context's new_function_type method, rather than directly creating
+ a function_type instance.
+ * jit-recording.c
+ (gcc::jit::recording::context::new_function_type): New method,
+ adapted from part of...
+ (gcc::jit::recording::context::new_function_ptr_type): ...this.
+ Update to call new_function_type.
+ * jit-recording.h
+ (gcc::jit::recording::context::new_function_type): New method.
+
2014-12-01 David Malcolm <dmalcolm@redhat.com>
PR jit/63969
if (!return_type)
goto error;
- result = new function_type (m_ctxt,
- return_type,
- num_args,
- param_types,
- is_variadic);
+ result = m_ctxt->new_function_type (return_type,
+ num_args,
+ param_types,
+ is_variadic);
error:
delete[] param_types;
return result;
}
+/* Create a recording::function_type instance and add it to this context's
+ list of mementos.
+
+ Used by new_function_ptr_type and by builtins_manager::make_fn_type. */
+
+recording::function_type *
+recording::context::new_function_type (recording::type *return_type,
+ int num_params,
+ recording::type **param_types,
+ int is_variadic)
+{
+ recording::function_type *fn_type
+ = new function_type (this,
+ return_type,
+ num_params,
+ param_types,
+ is_variadic);
+ record (fn_type);
+ return fn_type;
+}
+
/* Create a recording::type instance and add it to this context's list
of mementos.
recording::type **param_types,
int is_variadic)
{
- recording::function_type *fn_type =
- new function_type (this,
- return_type,
- num_params,
- param_types,
- is_variadic);
- record (fn_type);
+ recording::function_type *fn_type
+ = new_function_type (return_type,
+ num_params,
+ param_types,
+ is_variadic);
/* Return a pointer-type to the the function type. */
return fn_type->get_pointer ();
new_union_type (location *loc,
const char *name);
+ function_type *
+ new_function_type (type *return_type,
+ int num_params,
+ type **param_types,
+ int is_variadic);
+
type *
new_function_ptr_type (location *loc,
type *return_type,