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 <[email protected]>
+ * 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 <[email protected]>
+
* 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 <[email protected]>
+
+ * 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 <[email protected]>
* 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