summaryrefslogtreecommitdiff
path: root/gdb/value.h
diff options
context:
space:
mode:
authoraburgess <aburgess>2013-01-25 17:16:32 +0000
committeraburgess <aburgess>2013-01-25 17:16:32 +0000
commitfebdbbf9cb02f4f696e889874d43fea5d4006c2e (patch)
treef36ea99f3d67992b6082c45140684a65347da6f8 /gdb/value.h
parentfb5e48c5990d7d6ef7e9921a075df50ad21950a5 (diff)
downloadgdb-febdbbf9cb02f4f696e889874d43fea5d4006c2e.tar.gz
http://sourceware.org/ml/gdb-patches/2012-11/msg00312.html
gdb/ChangeLog * valarith.c (value_vector_widen): New function for replicating a scalar into a vector. (value_binop): Use value_vector_widen to widen scalar to vector rather than casting, this better matches gcc C behaviour. * valops.c (value_casst): Update logic for casting between vector types, and for casting from scalar to vector, try to match gcc C behaviour. * value.h (value_vector_widen): Declare. * opencl-lang.c (opencl_value_cast): New opencl specific casting function, handle special case for casting scalar to vector. (opencl_relop): Use opencl_value_cast. (evaluate_subexp_opencl): Use opencl_value_cast instead of value_cast, and handle BINOP_ASSIGN, UNOP_CAST, and UNOP_CAST_TYPE in order to use opencl_value_cast. gdb/testsuite/ChangeLog * gdb.base/gnu_vector.c: New variable for use in tests. * gdb.base/gnu_vector.exp: Update and extend tests to reflect changes in scalar to vector casting and widening. * gdb.python/py-type.c: New variables for use in tests. * gdb.python/py-type.exp: Update vector related tests to reflect changes in scalar to vector casting and widening.
Diffstat (limited to 'gdb/value.h')
-rw-r--r--gdb/value.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gdb/value.h b/gdb/value.h
index 67f1d048508..5825f6eca1f 100644
--- a/gdb/value.h
+++ b/gdb/value.h
@@ -482,6 +482,12 @@ extern void read_value_memory (struct value *val, int embedded_offset,
int stack, CORE_ADDR memaddr,
gdb_byte *buffer, size_t length);
+/* Cast SCALAR_VALUE to the element type of VECTOR_TYPE, then replicate
+ into each element of a new vector value with VECTOR_TYPE. */
+
+struct value *value_vector_widen (struct value *scalar_value,
+ struct type *vector_type);
+
#include "symtab.h"