From 0776344a3377b1ac01889b03e21f6ad20c267fa6 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 13 Mar 2023 11:58:31 -0600 Subject: [PATCH] Unify arch_decfloat_type and init_decfloat_type This unifies arch_decfloat_type and init_decfloat_type by using a type allocator. Reviewed-By: Simon Marchi --- gdb/dwarf2/read.c | 2 +- gdb/gdbtypes.c | 25 ++++++------------------- gdb/gdbtypes.h | 8 ++++++-- 3 files changed, 13 insertions(+), 22 deletions(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 06aa4e36b4d..c6824755797 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -15252,7 +15252,7 @@ read_base_type (struct die_info *die, struct dwarf2_cu *cu) type = init_complex_type (name, type); break; case DW_ATE_decimal_float: - type = init_decfloat_type (objfile, bits, name); + type = init_decfloat_type (alloc, bits, name); break; case DW_ATE_float: type = dwarf2_init_float_type (objfile, bits, name, name, byte_order); diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index 02711e0af6a..df10ffea383 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -3474,13 +3474,12 @@ init_float_type (type_allocator &alloc, return t; } -/* Allocate a TYPE_CODE_DECFLOAT type structure associated with OBJFILE. - BIT is the type size in bits. NAME is the type name. */ +/* See gdbtypes.h. */ struct type * -init_decfloat_type (struct objfile *objfile, int bit, const char *name) +init_decfloat_type (type_allocator &alloc, int bit, const char *name) { - return type_allocator (objfile).new_type (TYPE_CODE_DECFLOAT, bit, name); + return alloc.new_type (TYPE_CODE_DECFLOAT, bit, name); } /* Return true if init_complex_type can be called with TARGET_TYPE. */ @@ -5741,18 +5740,6 @@ copy_type (const struct type *type) /* Helper functions to initialize architecture-specific types. */ -/* Allocate a TYPE_CODE_DECFLOAT type structure associated with GDBARCH. - BIT is the type size in bits. NAME is the type name. */ - -struct type * -arch_decfloat_type (struct gdbarch *gdbarch, int bit, const char *name) -{ - struct type *t; - - t = type_allocator (gdbarch).new_type (TYPE_CODE_DECFLOAT, bit, name); - return t; -} - /* Allocate a TYPE_CODE_PTR type structure associated with GDBARCH. BIT is the pointer type size in bits. NAME is the type name. TARGET_TYPE is the pointer target type. Always sets the pointer type's @@ -6064,11 +6051,11 @@ create_gdbtypes_data (struct gdbarch *gdbarch) /* The following three are about decimal floating point types, which are 32-bits, 64-bits and 128-bits respectively. */ builtin_type->builtin_decfloat - = arch_decfloat_type (gdbarch, 32, "_Decimal32"); + = init_decfloat_type (alloc, 32, "_Decimal32"); builtin_type->builtin_decdouble - = arch_decfloat_type (gdbarch, 64, "_Decimal64"); + = init_decfloat_type (alloc, 64, "_Decimal64"); builtin_type->builtin_declong - = arch_decfloat_type (gdbarch, 128, "_Decimal128"); + = init_decfloat_type (alloc, 128, "_Decimal128"); /* "True" character types. */ builtin_type->builtin_true_char diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h index a819f50da0a..88a2270b234 100644 --- a/gdb/gdbtypes.h +++ b/gdb/gdbtypes.h @@ -2327,7 +2327,12 @@ extern struct type *init_float_type const struct floatformat **floatformats, enum bfd_endian byte_order = BFD_ENDIAN_UNKNOWN); -extern struct type *init_decfloat_type (struct objfile *, int, const char *); +/* Allocate a TYPE_CODE_DECFLOAT type structure using ALLOC. + BIT is the type size in bits. NAME is the type name. */ + +extern struct type *init_decfloat_type (type_allocator &alloc, int bit, + const char *name); + extern bool can_create_complex_type (struct type *); extern struct type *init_complex_type (const char *, struct type *); extern struct type *init_pointer_type (struct objfile *, int, const char *, @@ -2336,7 +2341,6 @@ extern struct type *init_fixed_point_type (struct objfile *, int, int, const char *); /* Helper functions to construct architecture-owned types. */ -extern struct type *arch_decfloat_type (struct gdbarch *, int, const char *); extern struct type *arch_pointer_type (struct gdbarch *, int, const char *, struct type *); -- 2.30.2