gdb/
[binutils-gdb.git] / gdb / gdbtypes.h
index 2859ce9bfe95844b2175cc68a8dee55c7b05b3ce..3141857d94ce9dfc9a69304996aa4c1dcf1caa90 100644 (file)
@@ -459,6 +459,9 @@ struct main_type
      For a function or method type, describes the type of the return value.
      For a range type, describes the type of the full range.
      For a complex type, describes the type of each coordinate.
+     For a special record or union type encoding a dynamic-sized type
+     in GNAT, a memoized pointer to a corresponding static version of
+     the type.
      Unused otherwise.  */
 
   struct type *target_type;
@@ -1045,7 +1048,8 @@ extern void allocate_gnat_aux_type (struct type *);
 #define TYPE_IS_OPAQUE(thistype) (((TYPE_CODE (thistype) == TYPE_CODE_STRUCT) ||        \
                                    (TYPE_CODE (thistype) == TYPE_CODE_UNION))        && \
                                   (TYPE_NFIELDS (thistype) == 0)                     && \
-                                  (HAVE_CPLUS_STRUCT (thistype) && (TYPE_NFN_FIELDS (thistype) == 0)) && \
+                                  (!HAVE_CPLUS_STRUCT (thistype)                       \
+                                  || TYPE_NFN_FIELDS (thistype) == 0) &&               \
                                   (TYPE_STUB (thistype) || !TYPE_STUB_SUPPORTED (thistype)))
 
 struct builtin_type
@@ -1098,6 +1102,9 @@ struct builtin_type
   struct type *builtin_int128;
   struct type *builtin_uint128;
 
+  /* Wide character types.  */
+  struct type *builtin_char16;
+  struct type *builtin_char32;
 
   /* Pointer types.  */
 
@@ -1178,16 +1185,6 @@ extern const struct floatformat *floatformats_vax_d[BFD_ENDIAN_UNKNOWN];
 extern const struct floatformat *floatformats_ibm_long_double[BFD_ENDIAN_UNKNOWN];
 
 
-/* Maximum and minimum values of built-in types */
-
-#define        MAX_OF_TYPE(t)  \
-   (TYPE_UNSIGNED(t) ? UMAX_OF_SIZE(TYPE_LENGTH(t)) \
-    : MAX_OF_SIZE(TYPE_LENGTH(t)))
-
-#define MIN_OF_TYPE(t) \
-   (TYPE_UNSIGNED(t) ? UMIN_OF_SIZE(TYPE_LENGTH(t)) \
-    : MIN_OF_SIZE(TYPE_LENGTH(t)))
-
 /* Allocate space for storing data associated with a particular type.
    We ensure that the space is allocated using the same mechanism that
    was used to allocate the space for the type structure itself.  I.E.
@@ -1249,6 +1246,8 @@ extern void append_composite_type_field_aligned (struct type *t,
                                                 char *name,
                                                 struct type *field,
                                                 int alignment);
+struct field *append_composite_type_field_raw (struct type *t, char *name,
+                                              struct type *field);
 
 /* Helper functions to construct a bit flags type.  An initially empty
    type is created using arch_flag_type().  Flags are then added using