Committed to branch dmalcolm/jit: gcc/jit/ * libgccjit++.h (gccjit::context::new_struct_type): Pass std::vector "fields" argument by reference rather than by value. (gccjit::context::new_function): Likewise, for "params" arg. (gccjit::context::new_call): Likewise, for "args" arg.
gcc/testsuite/ * jit.dg/test-quadratic.cc (make_test_quadratic): Update for change to gccjit::context::new_call to pass args by reference rather than by value. --- gcc/jit/ChangeLog.jit | 7 +++++++ gcc/jit/libgccjit++.h | 12 ++++++------ gcc/testsuite/ChangeLog.jit | 6 ++++++ gcc/testsuite/jit.dg/test-quadratic.cc | 3 ++- 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/gcc/jit/ChangeLog.jit b/gcc/jit/ChangeLog.jit index e1e908f..8f1083a 100644 --- a/gcc/jit/ChangeLog.jit +++ b/gcc/jit/ChangeLog.jit @@ -1,5 +1,12 @@ 2014-02-10 David Malcolm <dmalc...@redhat.com> + * libgccjit++.h (gccjit::context::new_struct_type): Pass std::vector + "fields" argument by reference rather than by value. + (gccjit::context::new_function): Likewise, for "params" arg. + (gccjit::context::new_call): Likewise, for "args" arg. + +2014-02-10 David Malcolm <dmalc...@redhat.com> + * libgccjit++.h (gccjit::context::new_location): Update filename arg from a const char * to a const std::string &. (gccjit::context::new_field): Likewise for "name" arg. diff --git a/gcc/jit/libgccjit++.h b/gcc/jit/libgccjit++.h index 1579979..ae55058 100644 --- a/gcc/jit/libgccjit++.h +++ b/gcc/jit/libgccjit++.h @@ -88,7 +88,7 @@ namespace gccjit location loc = location ()); type new_struct_type (const std::string &name, - std::vector<field> fields, + std::vector<field> &fields, location loc = location ()); param new_param (type type_, @@ -98,7 +98,7 @@ namespace gccjit function new_function (enum gcc_jit_function_kind kind, type return_type, const std::string &name, - std::vector<param> params, + std::vector<param> ¶ms, int is_variadic, location loc = location ()); @@ -127,7 +127,7 @@ namespace gccjit location loc = location ()); rvalue new_call (function func, - std::vector<rvalue> args, + std::vector<rvalue> &args, location loc = location ()); lvalue new_array_access (rvalue ptr, @@ -343,7 +343,7 @@ context::new_field (type type_, const std::string &name, location loc) inline type context::new_struct_type (const std::string &name, - std::vector<field> fields, + std::vector<field> &fields, location loc) { /* Treat std::vector as an array, relying on it not being resized: */ @@ -376,7 +376,7 @@ inline function context::new_function (enum gcc_jit_function_kind kind, type return_type, const std::string &name, - std::vector<param> params, + std::vector<param> ¶ms, int is_variadic, location loc) { @@ -490,7 +490,7 @@ context::new_comparison (enum gcc_jit_comparison op, inline rvalue context::new_call (function func, - std::vector<rvalue> args, + std::vector<rvalue> &args, location loc) { /* Treat std::vector as an array, relying on it not being resized: */ diff --git a/gcc/testsuite/ChangeLog.jit b/gcc/testsuite/ChangeLog.jit index 3db5cf5..79d2096 100644 --- a/gcc/testsuite/ChangeLog.jit +++ b/gcc/testsuite/ChangeLog.jit @@ -1,3 +1,9 @@ +2014-02-10 David Malcolm <dmalc...@redhat.com> + + * jit.dg/test-quadratic.cc (make_test_quadratic): Update for + change to gccjit::context::new_call to pass args by reference + rather than by value. + 2014-02-03 David Malcolm <dmalc...@redhat.com> * jit.dg/harness.h (check_string_value): Add a forward declaration, diff --git a/gcc/testsuite/jit.dg/test-quadratic.cc b/gcc/testsuite/jit.dg/test-quadratic.cc index 52ae92e..75725c0 100644 --- a/gcc/testsuite/jit.dg/test-quadratic.cc +++ b/gcc/testsuite/jit.dg/test-quadratic.cc @@ -247,11 +247,12 @@ make_test_quadratic (quadratic_test &testcase) /* double s = sqrt (q.discriminant); */ gccjit::lvalue s = test_quadratic.new_local (testcase.numeric_type, "s"); gccjit::rvalue discriminant_of_q = q.access_field (testcase.discriminant); + std::vector<gccjit::rvalue> args_to_sqrt_call (1, discriminant_of_q); test_quadratic.add_assignment ( s, testcase.ctxt.new_call ( testcase.sqrt, - std::vector<gccjit::rvalue> (1, discriminant_of_q))); + args_to_sqrt_call)); gccjit::rvalue minus_b = testcase.ctxt.new_unary_op ( -- 1.7.11.7