gdb_curses.h: Undefine KEY_EVENT before including curses
[deliverable/binutils-gdb.git] / gdb / gdbtypes.h
index 07c3a8656d94aeaa8b09d1b1903bb8f7de8f41eb..887dfdb5dea3bc29d700a528a5f680e1c2afedba 100644 (file)
@@ -351,6 +351,7 @@ enum type_instance_flag_value
 enum field_loc_kind
   {
     FIELD_LOC_KIND_BITPOS,     /* bitpos */
+    FIELD_LOC_KIND_ENUMVAL,    /* enumval */
     FIELD_LOC_KIND_PHYSADDR,   /* physaddr */
     FIELD_LOC_KIND_PHYSNAME,   /* physname */
     FIELD_LOC_KIND_DWARF_BLOCK /* dwarf_block */
@@ -511,11 +512,13 @@ struct main_type
           containing structure.  For gdbarch_bits_big_endian=1
           targets, it is the bit offset to the MSB.  For
           gdbarch_bits_big_endian=0 targets, it is the bit offset to
-          the LSB.  For a range bound or enum value, this is the
-          value itself.  */
+          the LSB.  */
 
        int bitpos;
 
+       /* Enum value.  */
+       LONGEST enumval;
+
        /* For a static field, if TYPE_FIELD_STATIC_HAS_ADDR then physaddr
           is the location (in the target) of the static field.
           Otherwise, physname is the mangled label of the static field.  */
@@ -538,7 +541,7 @@ struct main_type
       unsigned int artificial : 1;
 
       /* Discriminant for union field_location.  */
-      ENUM_BITFIELD(field_loc_kind) loc_kind : 2;
+      ENUM_BITFIELD(field_loc_kind) loc_kind : 3;
 
       /* Size of this field, in bits, or zero if not packed.
         If non-zero in an array type, indicates the element size in
@@ -546,7 +549,7 @@ struct main_type
         For an unpacked field, the field's type's length
         says how many bytes the field occupies.  */
 
-      unsigned int bitsize : 29;
+      unsigned int bitsize : 28;
 
       /* In a struct or union type, type of this field.
         In a function or member type, type of this argument.
@@ -931,7 +934,7 @@ struct call_site
        union field_location loc;
 
        /* Discriminant for union field_location.  */
-       ENUM_BITFIELD(field_loc_kind) loc_kind : 2;
+       ENUM_BITFIELD(field_loc_kind) loc_kind : 3;
       }
     target;
 
@@ -1087,13 +1090,19 @@ 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_ENUMVAL_LVAL(thisfld) ((thisfld).loc.enumval)
+#define FIELD_ENUMVAL(thisfld) (FIELD_ENUMVAL_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_ENUMVAL(thisfld, enumval)                    \
+  (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_ENUMVAL,          \
+   FIELD_ENUMVAL_LVAL (thisfld) = (enumval))
 #define SET_FIELD_PHYSNAME(thisfld, name)                      \
   (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSNAME,         \
    FIELD_STATIC_PHYSNAME (thisfld) = (name))
@@ -1111,6 +1120,7 @@ extern void allocate_gnat_aux_type (struct type *);
 #define TYPE_FIELD_NAME(thistype, n) FIELD_NAME(TYPE_FIELD(thistype, n))
 #define TYPE_FIELD_LOC_KIND(thistype, n) FIELD_LOC_KIND (TYPE_FIELD (thistype, n))
 #define TYPE_FIELD_BITPOS(thistype, n) FIELD_BITPOS (TYPE_FIELD (thistype, n))
+#define TYPE_FIELD_ENUMVAL(thistype, n) FIELD_ENUMVAL (TYPE_FIELD (thistype, n))
 #define TYPE_FIELD_STATIC_PHYSNAME(thistype, n) FIELD_STATIC_PHYSNAME (TYPE_FIELD (thistype, n))
 #define TYPE_FIELD_STATIC_PHYSADDR(thistype, n) FIELD_STATIC_PHYSADDR (TYPE_FIELD (thistype, n))
 #define TYPE_FIELD_DWARF_BLOCK(thistype, n) FIELD_DWARF_BLOCK (TYPE_FIELD (thistype, n))
This page took 0.024916 seconds and 4 git commands to generate.