* dbxread.c (discarding_local_symbols_complaint): New complaint.
[binutils-gdb.git] / gdb / gdbtypes.h
index 85dbb7bad5af5d739c5993a6cf0a8a735e354c6c..0411aaacb623f814f085ce375468bade034a93c2 100644 (file)
@@ -248,6 +248,13 @@ enum type_code
 #define TYPE_FLAG_VARARGS      (1 << 11)
 #define TYPE_VARARGS(t)                ((t)->flags & TYPE_FLAG_VARARGS)
 
+/* Identify a vector type.  Gcc is handling this by adding an extra
+   attribute to the array type.  We slurp that in as a new flag of a
+   type.  This is used only in dwarf2read.c.  */
+#define TYPE_FLAG_VECTOR       (1 << 12)
+#define TYPE_VECTOR(t)         ((t)->flags & TYPE_FLAG_VECTOR)
+
+
 struct type
   {
 
@@ -1054,6 +1061,16 @@ extern struct type *alloc_type (struct objfile *);
 extern struct type *init_type (enum type_code, int, int, char *,
                               struct objfile *);
 
+/* Helper functions to construct a struct or record type.  An
+   initially empty type is created using init_composite_type().
+   Fields are then added using append_struct_type_field().  A union
+   type has its size set to the largest field.  A struct type has each
+   field packed against the previous.  */
+
+extern struct type *init_composite_type (char *name, enum type_code code);
+extern void append_composite_type_field (struct type *t, char *name,
+                                        struct type *field);
+
 extern struct type *lookup_reference_type (struct type *);
 
 extern struct type *make_reference_type (struct type *, struct type **);
@@ -1062,6 +1079,8 @@ extern struct type *make_cv_type (int, int, struct type *, struct type **);
 
 extern void finish_cv_type (struct type *);
 
+extern void replace_type (struct type *, struct type *);
+
 extern int address_space_name_to_int (char *);
 
 extern char *address_space_int_to_name (int);