summaryrefslogtreecommitdiff
path: root/gdb/valarith.c
diff options
context:
space:
mode:
authorPedro Alves <pedro@codesourcery.com>2009-01-13 10:34:30 +0000
committerPedro Alves <pedro@codesourcery.com>2009-01-13 10:34:30 +0000
commitca922ee40ab51547f0b3580f3f480bbac8be77a0 (patch)
treeed2a062f0034516b418014ffad629ccf97a74e66 /gdb/valarith.c
parent7f08c16c1ff2512e7dd909261899f1fa27e068bc (diff)
downloadgdb-ca922ee40ab51547f0b3580f3f480bbac8be77a0.tar.gz
2009-01-13 Jim Blandy <jimb@codesourcery.com>
Abstract out common code for copying value locations. * value.h (set_value_component_location): New declaration. * value.c (set_value_component_location): New function. (value_primitive_field): Use it. * valarith.c (value_subscript, value_subscripted_rvalue): Same. * valops.c (search_struct_field, value_slice): Same. * ada-lang.c (coerce_unspec_val_to_type) (ada_value_primitive_packed_val): Same.
Diffstat (limited to 'gdb/valarith.c')
-rw-r--r--gdb/valarith.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/gdb/valarith.c b/gdb/valarith.c
index 48f2e95513d..f38cdb842fc 100644
--- a/gdb/valarith.c
+++ b/gdb/valarith.c
@@ -233,11 +233,7 @@ value_subscripted_rvalue (struct value *array, struct value *idx, int lowerbound
memcpy (value_contents_writeable (v),
value_contents (array) + elt_offs, elt_size);
- if (VALUE_LVAL (array) == lval_internalvar)
- VALUE_LVAL (v) = lval_internalvar_component;
- else
- VALUE_LVAL (v) = VALUE_LVAL (array);
- VALUE_ADDRESS (v) = VALUE_ADDRESS (array);
+ set_value_component_location (v, array);
VALUE_REGNUM (v) = VALUE_REGNUM (array);
VALUE_FRAME_ID (v) = VALUE_FRAME_ID (array);
set_value_offset (v, value_offset (array) + elt_offs);
@@ -277,11 +273,7 @@ value_bitstring_subscript (struct type *type,
set_value_bitpos (v, bit_index);
set_value_bitsize (v, 1);
-
- VALUE_LVAL (v) = VALUE_LVAL (bitstring);
- if (VALUE_LVAL (bitstring) == lval_internalvar)
- VALUE_LVAL (v) = lval_internalvar_component;
- VALUE_ADDRESS (v) = VALUE_ADDRESS (bitstring);
+ set_value_component_location (v, bitstring);
VALUE_FRAME_ID (v) = VALUE_FRAME_ID (bitstring);
set_value_offset (v, offset + value_offset (bitstring));