2012-04-17 Pedro Alves <palves@redhat.com>
authorPedro Alves <palves@redhat.com>
Tue, 17 Apr 2012 13:55:32 +0000 (13:55 +0000)
committerPedro Alves <palves@redhat.com>
Tue, 17 Apr 2012 13:55:32 +0000 (13:55 +0000)
* gdbtypes.h (FIELD_BITPOS): Rename to ...
(FIELD_BITPOS_LVAL): ... this.
(FIELD_BITPOS): New.
(SET_FIELD_BITPOS): Adjust to use FIELD_BITPOS_LVAL.
* dwarf2read.c (dwarf2_add_field): Use SET_FIELD_BITPOS.
* gdbtypes.c (append_composite_type_field_aligned): Adjust to use
SET_FIELD_BITPOS.
* gnu-v3-abi.c (build_gdb_vtable_type): Adjust to use
SET_FIELD_BITPOS.
* stabsread.c (read_cpp_abbrev, read_one_struct_field)
(read_baseclasses): Adjust to use SET_FIELD_BITPOS.
* target-descriptions.c (tdesc_gdb_type): Adjust to use
SET_FIELD_BITPOS.

gdb/ChangeLog
gdb/dwarf2read.c
gdb/gdbtypes.c
gdb/gdbtypes.h
gdb/gnu-v3-abi.c
gdb/stabsread.c
gdb/target-descriptions.c

index 0aec0b1ea81c0328c4e751309b5e81dad66d0190..baf556ba6a1ea1706256559b025f194b95b04903 100644 (file)
@@ -1,3 +1,19 @@
+2012-04-17  Pedro Alves  <palves@redhat.com>
+
+       * gdbtypes.h (FIELD_BITPOS): Rename to ...
+       (FIELD_BITPOS_LVAL): ... this.
+       (FIELD_BITPOS): New.
+       (SET_FIELD_BITPOS): Adjust to use FIELD_BITPOS_LVAL.
+       * dwarf2read.c (dwarf2_add_field): Use SET_FIELD_BITPOS.
+       * gdbtypes.c (append_composite_type_field_aligned): Adjust to use
+       SET_FIELD_BITPOS.
+       * gnu-v3-abi.c (build_gdb_vtable_type): Adjust to use
+       SET_FIELD_BITPOS.
+       * stabsread.c (read_cpp_abbrev, read_one_struct_field)
+       (read_baseclasses): Adjust to use SET_FIELD_BITPOS.
+       * target-descriptions.c (tdesc_gdb_type): Adjust to use
+       SET_FIELD_BITPOS.
+
 2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        Do not rely on FIELD_LOC_KIND_BITPOS being zero.
index 0e211aec355dbbb582e1dffdf034bb51125cbdab..eec52fb75e83d150129c0e3266c30b2c39c1068f 100644 (file)
@@ -7066,7 +7066,7 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die,
                 anonymous object to the MSB of the field.  We don't
                 have to do anything special since we don't need to
                 know the size of the anonymous object.  */
-             FIELD_BITPOS (*fp) += DW_UNSND (attr);
+             SET_FIELD_BITPOS (*fp, FIELD_BITPOS (*fp) + DW_UNSND (attr));
            }
          else
            {
@@ -7095,8 +7095,10 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die,
                     bit field.  */
                  anonymous_size = TYPE_LENGTH (fp->type);
                }
-             FIELD_BITPOS (*fp) += anonymous_size * bits_per_byte
-               - bit_offset - FIELD_BITSIZE (*fp);
+             SET_FIELD_BITPOS (*fp,
+                               (FIELD_BITPOS (*fp)
+                                + anonymous_size * bits_per_byte
+                                - bit_offset - FIELD_BITSIZE (*fp)));
            }
        }
 
index 90e33a5ea504752200aefb3bb13d65d58f8705ab..d772d9a047529cebe10699ffaca43ee141537ebf 100644 (file)
@@ -3666,9 +3666,10 @@ append_composite_type_field_aligned (struct type *t, char *name,
       TYPE_LENGTH (t) = TYPE_LENGTH (t) + TYPE_LENGTH (field);
       if (TYPE_NFIELDS (t) > 1)
        {
-         FIELD_BITPOS (f[0]) = (FIELD_BITPOS (f[-1])
-                                + (TYPE_LENGTH (FIELD_TYPE (f[-1]))
-                                   * TARGET_CHAR_BIT));
+         SET_FIELD_BITPOS (f[0],
+                           (FIELD_BITPOS (f[-1])
+                            + (TYPE_LENGTH (FIELD_TYPE (f[-1]))
+                               * TARGET_CHAR_BIT)));
 
          if (alignment)
            {
@@ -3679,7 +3680,7 @@ append_composite_type_field_aligned (struct type *t, char *name,
 
              if (left)
                {
-                 FIELD_BITPOS (f[0]) += (alignment - left);
+                 SET_FIELD_BITPOS (f[0], FIELD_BITPOS (f[0]) + (alignment - left));
                  TYPE_LENGTH (t) += (alignment - left) / TARGET_CHAR_BIT;
                }
            }
index 07c3a8656d94aeaa8b09d1b1903bb8f7de8f41eb..a2b2432c4fd84be311af393dabe8fc400a4176f1 100644 (file)
@@ -1087,13 +1087,14 @@ extern void allocate_gnat_aux_type (struct type *);
 #define FIELD_TYPE(thisfld) ((thisfld).type)
 #define FIELD_NAME(thisfld) ((thisfld).name)
 #define FIELD_LOC_KIND(thisfld) ((thisfld).loc_kind)
-#define FIELD_BITPOS(thisfld) ((thisfld).loc.bitpos)
+#define FIELD_BITPOS_LVAL(thisfld) ((thisfld).loc.bitpos)
+#define FIELD_BITPOS(thisfld) (FIELD_BITPOS_LVAL (thisfld) + 0)
 #define FIELD_STATIC_PHYSNAME(thisfld) ((thisfld).loc.physname)
 #define FIELD_STATIC_PHYSADDR(thisfld) ((thisfld).loc.physaddr)
 #define FIELD_DWARF_BLOCK(thisfld) ((thisfld).loc.dwarf_block)
 #define SET_FIELD_BITPOS(thisfld, bitpos)                      \
   (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_BITPOS,           \
-   FIELD_BITPOS (thisfld) = (bitpos))
+   FIELD_BITPOS_LVAL (thisfld) = (bitpos))
 #define SET_FIELD_PHYSNAME(thisfld, name)                      \
   (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSNAME,         \
    FIELD_STATIC_PHYSNAME (thisfld) = (name))
index 1095c60b9e103b9cfdfc0d2683cb09ba35742393..ed94b846688eef1ce9a68666bab7e5ead85690bf 100644 (file)
@@ -130,28 +130,28 @@ build_gdb_vtable_type (struct gdbarch *arch)
   /* ptrdiff_t vcall_and_vbase_offsets[0]; */
   FIELD_NAME (*field) = "vcall_and_vbase_offsets";
   FIELD_TYPE (*field) = lookup_array_range_type (ptrdiff_type, 0, -1);
-  FIELD_BITPOS (*field) = offset * TARGET_CHAR_BIT;
+  SET_FIELD_BITPOS (*field, offset * TARGET_CHAR_BIT);
   offset += TYPE_LENGTH (FIELD_TYPE (*field));
   field++;
 
   /* ptrdiff_t offset_to_top; */
   FIELD_NAME (*field) = "offset_to_top";
   FIELD_TYPE (*field) = ptrdiff_type;
-  FIELD_BITPOS (*field) = offset * TARGET_CHAR_BIT;
+  SET_FIELD_BITPOS (*field, offset * TARGET_CHAR_BIT);
   offset += TYPE_LENGTH (FIELD_TYPE (*field));
   field++;
 
   /* void *type_info; */
   FIELD_NAME (*field) = "type_info";
   FIELD_TYPE (*field) = void_ptr_type;
-  FIELD_BITPOS (*field) = offset * TARGET_CHAR_BIT;
+  SET_FIELD_BITPOS (*field, offset * TARGET_CHAR_BIT);
   offset += TYPE_LENGTH (FIELD_TYPE (*field));
   field++;
 
   /* void (*virtual_functions[0]) (); */
   FIELD_NAME (*field) = "virtual_functions";
   FIELD_TYPE (*field) = lookup_array_range_type (ptr_to_void_fn_type, 0, -1);
-  FIELD_BITPOS (*field) = offset * TARGET_CHAR_BIT;
+  SET_FIELD_BITPOS (*field, offset * TARGET_CHAR_BIT);
   offset += TYPE_LENGTH (FIELD_TYPE (*field));
   field++;
 
index 39e0d7b7278cedf3588f99d4f7703ee6f19f7017..40b2465340b71b9615b45560b46ade2e1693db3a 100644 (file)
@@ -2830,8 +2830,8 @@ read_cpp_abbrev (struct field_info *fip, char **pp, struct type *type,
       {
        int nbits;
 
-       FIELD_BITPOS (fip->list->field) = read_huge_number (pp, ';', &nbits,
-                                                            0);
+       SET_FIELD_BITPOS (fip->list->field,
+                         read_huge_number (pp, ';', &nbits, 0));
        if (nbits != 0)
          return 0;
       }
@@ -2907,7 +2907,8 @@ read_one_struct_field (struct field_info *fip, char **pp, char *p,
   {
     int nbits;
 
-    FIELD_BITPOS (fip->list->field) = read_huge_number (pp, ',', &nbits, 0);
+    SET_FIELD_BITPOS (fip->list->field,
+                     read_huge_number (pp, ',', &nbits, 0));
     if (nbits != 0)
       {
        stabs_general_complaint ("bad structure-type format");
@@ -3187,7 +3188,7 @@ read_baseclasses (struct field_info *fip, char **pp, struct type *type,
           corresponding to this baseclass.  Always zero in the absence of
           multiple inheritance.  */
 
-       FIELD_BITPOS (new->field) = read_huge_number (pp, ',', &nbits, 0);
+       SET_FIELD_BITPOS (new->field, read_huge_number (pp, ',', &nbits, 0));
        if (nbits != 0)
          return 0;
       }
index cbcca765a7536f72376c52e34605dc0446854682..0b12e3ea0536bf0bb8841a692b96d9a33ac696a7 100644 (file)
@@ -657,9 +657,9 @@ tdesc_gdb_type (struct gdbarch *gdbarch, struct tdesc_type *tdesc_type)
                bitsize = f->end - f->start + 1;
                total_size = tdesc_type->u.u.size * TARGET_CHAR_BIT;
                if (gdbarch_bits_big_endian (gdbarch))
-                 FIELD_BITPOS (fld[0]) = total_size - f->start - bitsize;
+                 SET_FIELD_BITPOS (fld[0], total_size - f->start - bitsize);
                else
-                 FIELD_BITPOS (fld[0]) = f->start;
+                 SET_FIELD_BITPOS (fld[0], f->start);
                FIELD_BITSIZE (fld[0]) = bitsize;
              }
            else