diff options
author | aburgess <aburgess> | 2013-01-25 17:16:32 +0000 |
---|---|---|
committer | aburgess <aburgess> | 2013-01-25 17:16:32 +0000 |
commit | febdbbf9cb02f4f696e889874d43fea5d4006c2e (patch) | |
tree | f36ea99f3d67992b6082c45140684a65347da6f8 /gdb/value.h | |
parent | fb5e48c5990d7d6ef7e9921a075df50ad21950a5 (diff) | |
download | gdb-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.h | 6 |
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" |