diff options
author | Joel Brobecker <brobecker@adacore.com> | 2015-01-30 16:33:04 +0400 |
---|---|---|
committer | Joel Brobecker <brobecker@adacore.com> | 2015-05-05 11:21:10 -0700 |
commit | 7c5127443be1d3d0477b3b1d25875023992409bc (patch) | |
tree | 1e3225c1653fc5e4849c92224a128753fecaae7f /gdb/ada-lang.c | |
parent | 0fa7fe506c242b459c4c05d331e7c7d66fb52390 (diff) | |
download | gdb-7c5127443be1d3d0477b3b1d25875023992409bc.zip gdb-7c5127443be1d3d0477b3b1d25875023992409bc.tar.gz gdb-7c5127443be1d3d0477b3b1d25875023992409bc.tar.bz2 |
Further document ada-lang.c::value_assign_to_component & fix whitespaces.
This patch improves the documentation of ada-lang.c's
value_assign_to_component to publish the fact that it also works
with not_lval values.
And touching this area of the code showed that there were a number
of whitespace issues, as well as a formatting issue of the main comment
(no leading '*' on each line). This patch fixes those while at it.
No functional change, however.
gdb/ChangeLog:
* ada-lang.c (value_assign_to_component): Reformat and improve
documentation. Remove all trailing spaces.
Diffstat (limited to 'gdb/ada-lang.c')
-rw-r--r-- | gdb/ada-lang.c | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index c56e8bb..7fe85c0 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -2682,21 +2682,27 @@ ada_value_assign (struct value *toval, struct value *fromval) } -/* Given that COMPONENT is a memory lvalue that is part of the lvalue - * CONTAINER, assign the contents of VAL to COMPONENTS's place in - * CONTAINER. Modifies the VALUE_CONTENTS of CONTAINER only, not - * COMPONENT, and not the inferior's memory. The current contents - * of COMPONENT are ignored. */ +/* Given that COMPONENT is a memory lvalue that is part of the lvalue + CONTAINER, assign the contents of VAL to COMPONENTS's place in + CONTAINER. Modifies the VALUE_CONTENTS of CONTAINER only, not + COMPONENT, and not the inferior's memory. The current contents + of COMPONENT are ignored. + + Although not part of the initial design, this function also works + when CONTAINER and COMPONENT are not_lval's: it works as if CONTAINER + had a null address, and COMPONENT had an address which is equal to + its offset inside CONTAINER. */ + static void value_assign_to_component (struct value *container, struct value *component, struct value *val) { LONGEST offset_in_container = (LONGEST) (value_address (component) - value_address (container)); - int bit_offset_in_container = + int bit_offset_in_container = value_bitpos (component) - value_bitpos (container); int bits; - + val = value_cast (value_type (component), val); if (value_bitsize (component) == 0) @@ -2705,17 +2711,17 @@ value_assign_to_component (struct value *container, struct value *component, bits = value_bitsize (component); if (gdbarch_bits_big_endian (get_type_arch (value_type (container)))) - move_bits (value_contents_writeable (container) + offset_in_container, + move_bits (value_contents_writeable (container) + offset_in_container, value_bitpos (container) + bit_offset_in_container, value_contents (val), TYPE_LENGTH (value_type (component)) * TARGET_CHAR_BIT - bits, bits, 1); else - move_bits (value_contents_writeable (container) + offset_in_container, + move_bits (value_contents_writeable (container) + offset_in_container, value_bitpos (container) + bit_offset_in_container, value_contents (val), 0, bits, 0); -} - +} + /* The value of the element of array ARR at the ARITY indices given in IND. ARR may be either a simple array, GNAT array descriptor, or pointer thereto. */ |