* valarith.c (value_pos, value_neg, value_complement): Handle
	vector types.
	* valops.c (value_one): Likewise.

gdb/testsuite:
	* gdb.base/gnu_vector.exp: Add unary operator tests.
This commit is contained in:
Ken Werner
2010-11-03 14:06:27 +00:00
parent c37f7098e9
commit 120bd36024
5 changed files with 78 additions and 5 deletions

View File

@@ -871,6 +871,20 @@ value_one (struct type *type, enum lval_type lv)
{
val = value_from_longest (type, (LONGEST) 1);
}
else if (TYPE_CODE (type1) == TYPE_CODE_ARRAY && TYPE_VECTOR (type1))
{
struct type *eltype = check_typedef (TYPE_TARGET_TYPE (type1));
int i, n = TYPE_LENGTH (type1) / TYPE_LENGTH (eltype);
struct value *tmp;
val = allocate_value (type);
for (i = 0; i < n; i++)
{
tmp = value_one (eltype, lv);
memcpy (value_contents_writeable (val) + i * TYPE_LENGTH (eltype),
value_contents_all (tmp), TYPE_LENGTH (eltype));
}
}
else
{
error (_("Not a numeric type."));