X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fgdbtypes.h;h=643c61006befb298011c488e72885b2dc878dd75;hb=ed3ef33944c39d9a3cea72b9a7cef3c20f0e3461;hp=8899ef46ac9cc3f1a81abd053394a12286bcb52a;hpb=28e7fd62340426746f9c896cbc40c5d374ec47aa;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h index 8899ef46ac..643c61006b 100644 --- a/gdb/gdbtypes.h +++ b/gdb/gdbtypes.h @@ -1,6 +1,6 @@ /* Internal type definitions for GDB. - Copyright (C) 1992-2013 Free Software Foundation, Inc. + Copyright (C) 1992-2014 Free Software Foundation, Inc. Contributed by Cygnus Support, using pieces from other GDB modules. @@ -169,18 +169,18 @@ enum type_code enum type_flag_value { - TYPE_FLAG_UNSIGNED = (1 << 7), - TYPE_FLAG_NOSIGN = (1 << 8), - TYPE_FLAG_STUB = (1 << 9), - TYPE_FLAG_TARGET_STUB = (1 << 10), - TYPE_FLAG_STATIC = (1 << 11), - TYPE_FLAG_PROTOTYPED = (1 << 12), - TYPE_FLAG_INCOMPLETE = (1 << 13), - TYPE_FLAG_VARARGS = (1 << 14), - TYPE_FLAG_VECTOR = (1 << 15), - TYPE_FLAG_FIXED_INSTANCE = (1 << 16), - TYPE_FLAG_STUB_SUPPORTED = (1 << 17), - TYPE_FLAG_GNU_IFUNC = (1 << 18), + TYPE_FLAG_UNSIGNED = (1 << 8), + TYPE_FLAG_NOSIGN = (1 << 9), + TYPE_FLAG_STUB = (1 << 10), + TYPE_FLAG_TARGET_STUB = (1 << 11), + TYPE_FLAG_STATIC = (1 << 12), + TYPE_FLAG_PROTOTYPED = (1 << 13), + TYPE_FLAG_INCOMPLETE = (1 << 14), + TYPE_FLAG_VARARGS = (1 << 15), + TYPE_FLAG_VECTOR = (1 << 16), + TYPE_FLAG_FIXED_INSTANCE = (1 << 17), + TYPE_FLAG_STUB_SUPPORTED = (1 << 18), + TYPE_FLAG_GNU_IFUNC = (1 << 19), /* Used for error-checking. */ TYPE_FLAG_MIN = TYPE_FLAG_UNSIGNED @@ -198,6 +198,7 @@ enum type_instance_flag_value TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1 = (1 << 4), TYPE_INSTANCE_FLAG_ADDRESS_CLASS_2 = (1 << 5), TYPE_INSTANCE_FLAG_NOTTEXT = (1 << 6), + TYPE_INSTANCE_FLAG_RESTRICT = (1 << 7) }; /* Unsigned integer type. If this is not set for a TYPE_CODE_INT, the @@ -319,6 +320,12 @@ enum type_instance_flag_value #define TYPE_VOLATILE(t) \ (TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_VOLATILE) +/* Restrict type. If this is set, the corresponding type has a + restrict modifier. */ + +#define TYPE_RESTRICT(t) \ + (TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_RESTRICT) + /* Instruction-space delimited type. This is for Harvard architectures which have separate instruction and data address spaces (and perhaps others). @@ -1424,8 +1431,12 @@ extern struct type *alloc_type_copy (const struct type *); objfile's architecture is returned. */ extern struct gdbarch *get_type_arch (const struct type *); +/* This returns the target type (or NULL) of TYPE, also skipping + past typedefs. */ +extern struct type *get_target_type (struct type *type); + /* Helper function to construct objfile-owned types. */ -extern struct type *init_type (enum type_code, int, int, char *, +extern struct type *init_type (enum type_code, int, int, const char *, struct objfile *); /* Helper functions to construct architecture-owned types. */ @@ -1471,6 +1482,8 @@ extern struct type *make_reference_type (struct type *, struct type **); extern struct type *make_cv_type (int, int, struct type *, struct type **); +extern struct type *make_restrict_type (struct type *); + extern void replace_type (struct type *, struct type *); extern int address_space_name_to_int (struct gdbarch *, char *); @@ -1499,7 +1512,7 @@ extern const char *type_name_no_tag (const struct type *); extern const char *type_name_no_tag_or_error (struct type *type); -extern struct type *lookup_struct_elt_type (struct type *, char *, int); +extern struct type *lookup_struct_elt_type (struct type *, const char *, int); extern struct type *make_pointer_type (struct type *, struct type **); @@ -1532,6 +1545,10 @@ extern struct type *lookup_unsigned_typename (const struct language_defn *, extern struct type *lookup_signed_typename (const struct language_defn *, struct gdbarch *, const char *); +extern void get_unsigned_type_max (struct type *, ULONGEST *); + +extern void get_signed_type_minmax (struct type *, LONGEST *, LONGEST *); + extern struct type *check_typedef (struct type *); #define CHECK_TYPEDEF(TYPE) \ @@ -1651,4 +1668,6 @@ extern struct type *copy_type (const struct type *type); extern int types_equal (struct type *, struct type *); +extern int types_deeply_equal (struct type *, struct type *); + #endif /* GDBTYPES_H */