2005-02-07 Andrew Cagney <cagney@gnu.org>
authorAndrew Cagney <cagney@redhat.com>
Tue, 8 Feb 2005 04:57:03 +0000 (04:57 +0000)
committerAndrew Cagney <cagney@redhat.com>
Tue, 8 Feb 2005 04:57:03 +0000 (04:57 +0000)
* value.c (set_value_bitpos, set_value_bitsize): Define.
* value.h (set_value_bitpos, set_value_bitsize): Declare.
* ada-lang.c, valarith.c: Update.

gdb/ChangeLog
gdb/ada-lang.c
gdb/valarith.c
gdb/value.c
gdb/value.h

index 6f7da53301ec2387c4984465a3b39bfb80517c2f..e3f67c125349639004f9e068562a2762e737319d 100644 (file)
@@ -1,5 +1,9 @@
 2005-02-07  Andrew Cagney  <cagney@gnu.org>
 
+       * value.c (set_value_bitpos, set_value_bitsize): Define.
+       * value.h (set_value_bitpos, set_value_bitsize): Declare.
+       * ada-lang.c, valarith.c: Update.
+
        * cp-valprint.c, c-valprint.c, infcall.c: Use value_contents or
        value_contents_writeable, include note that there are problems.
        * breakpoint.c, infcall.c: Use VALUE_LVAL.
index b3bed52303376aa39520e596830386e03e8962cf..b2fb2a671c24d8e3bbc8657c7cddc29b24629e90 100644 (file)
@@ -448,8 +448,8 @@ coerce_unspec_val_to_type (struct value *val, struct type *type)
 
       result = allocate_value (type);
       VALUE_LVAL (result) = VALUE_LVAL (val);
-      result->bitsize = value_bitsize (val);
-      result->bitpos = value_bitpos (val);
+      set_value_bitsize (result, value_bitsize (val));
+      set_value_bitpos (result, value_bitpos (val));
       VALUE_ADDRESS (result) = VALUE_ADDRESS (val) + value_offset (val);
       if (value_lazy (val)
           || TYPE_LENGTH (type) > TYPE_LENGTH (value_type (val)))
@@ -1830,16 +1830,16 @@ ada_value_primitive_packed_val (struct value *obj, const bfd_byte *valaddr,
       if (VALUE_LVAL (obj) == lval_internalvar)
         VALUE_LVAL (v) = lval_internalvar_component;
       VALUE_ADDRESS (v) = VALUE_ADDRESS (obj) + value_offset (obj) + offset;
-      v->bitpos = bit_offset + value_bitpos (obj);
-      v->bitsize = bit_size;
+      set_value_bitpos (v, bit_offset + value_bitpos (obj));
+      set_value_bitsize (v, bit_size);
       if (value_bitpos (v) >= HOST_CHAR_BIT)
         {
           VALUE_ADDRESS (v) += 1;
-          v->bitpos -= HOST_CHAR_BIT;
+          set_value_bitpos (v, value_bitpos (v) - HOST_CHAR_BIT);
         }
     }
   else
-    v->bitsize = bit_size;
+    set_value_bitsize (v, bit_size);
   unpacked = (unsigned char *) value_contents (v);
 
   srcBitsLeft = bit_size;
index 6447b48d3b09121eb2a37cccaa305f5d2af31ea5..b3f6c49d5cd1037716f98d519d6b4bda5eadc2f5 100644 (file)
@@ -233,8 +233,8 @@ value_subscript (struct value *array, struct value *idx)
       bit_index = index % TARGET_CHAR_BIT;
       byte >>= (BITS_BIG_ENDIAN ? TARGET_CHAR_BIT - 1 - bit_index : bit_index);
       v = value_from_longest (LA_BOOL_TYPE, byte & 1);
-      v->bitpos = bit_index;
-      v->bitsize = 1;
+      set_value_bitpos (v, bit_index);
+      set_value_bitsize (v, 1);
       VALUE_LVAL (v) = VALUE_LVAL (array);
       if (VALUE_LVAL (array) == lval_internalvar)
        VALUE_LVAL (v) = lval_internalvar_component;
index b584fb99d9fe46eb7bd00ae37d0a834b99eed197..de9fd15c36df26d6aba040385a0a548b71f11b38 100644 (file)
@@ -156,12 +156,22 @@ value_bitpos (struct value *value)
 {
   return value->bitpos;
 }
+void
+set_value_bitpos (struct value *value, int bit)
+{
+  value->bitpos = bit;
+}
 
 int
 value_bitsize (struct value *value)
 {
   return value->bitsize;
 }
+void
+set_value_bitsize (struct value *value, int bit)
+{
+  value->bitsize = bit;
+}
 
 bfd_byte *
 value_contents_raw (struct value *value)
index b8d1490cfbec2794288e53f3817ed88fa1757450..5173ead8003fc813cc60e9376a8cb57e78fae49e 100644 (file)
@@ -184,7 +184,9 @@ extern struct type *value_type (struct value *);
 extern void deprecated_set_value_type (struct value *value,
                                       struct type *type);
 extern int value_bitsize (struct value *);
+extern void set_value_bitsize (struct value *, int bit);
 extern int value_bitpos (struct value *);
+extern void set_value_bitpos (struct value *, int bit);
 
 extern int value_offset (struct value *);
 extern void set_value_offset (struct value *, int offset);