diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/gdbtypes.c | 38 |
2 files changed, 25 insertions, 18 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ffae608..af39621 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2019-12-04 Tom Tromey <tromey@adacore.com> + * gdbtypes.c (type_byte_order): Move earlier. Assert for unknown + endian-ness. + +2019-12-04 Tom Tromey <tromey@adacore.com> + * dwarf2read.c (dwarf2_init_float_type) (dwarf2_init_complex_target_type): Add byte_order parameter. (read_base_type): Compute byte order earlier. diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index 0609634..737ebfe 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -3423,6 +3423,26 @@ is_unique_ancestor (struct type *base, struct value *val) value_address (val), val) == 1; } +/* See gdbtypes.h. */ + +enum bfd_endian +type_byte_order (const struct type *type) +{ + bfd_endian byteorder = gdbarch_byte_order (get_type_arch (type)); + if (TYPE_ENDIANITY_NOT_DEFAULT (type)) + { + if (byteorder == BFD_ENDIAN_BIG) + return BFD_ENDIAN_LITTLE; + else + { + gdb_assert (byteorder == BFD_ENDIAN_LITTLE); + return BFD_ENDIAN_BIG; + } + } + + return byteorder; +} + /* Overload resolution. */ @@ -5701,21 +5721,3 @@ _initialize_gdbtypes (void) show_strict_type_checking, &setchecklist, &showchecklist); } - -/* See gdbtypes.h. */ -enum bfd_endian -type_byte_order (const struct type *type) -{ - bfd_endian byteorder = gdbarch_byte_order (get_type_arch (type)); - if (TYPE_ENDIANITY_NOT_DEFAULT (type)) - { - if (byteorder == BFD_ENDIAN_BIG) - return BFD_ENDIAN_LITTLE; - else if (byteorder == BFD_ENDIAN_LITTLE) - return BFD_ENDIAN_BIG; - else - return BFD_ENDIAN_UNKNOWN; - } - - return byteorder; -} |