Use builtin type when appropriate

There are a few spots that check whether a type is objfile-owned, and
then choose either the objfile- or arch-specific builtin type.  I
don't think there is a need to do this any more (if there ever was),
because it is ok for an objfile-allocated type to refer to an
arch-allocated type.

Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
This commit is contained in:
Tom Tromey 2023-03-11 09:37:15 -07:00
parent 526648585c
commit 426e5b66a7
3 changed files with 4 additions and 17 deletions

View File

@ -164,10 +164,7 @@ convert_func (compile_c_instance *context, struct type *type)
GDB's parser used to do. */
if (target_type == NULL)
{
if (type->is_objfile_owned ())
target_type = objfile_type (type->objfile_owner ())->builtin_int;
else
target_type = builtin_type (type->arch_owner ())->builtin_int;
target_type = builtin_type (type->arch ())->builtin_int;
warning (_("function has unknown return type; assuming int"));
}
@ -322,11 +319,7 @@ convert_type_basic (compile_c_instance *context, struct type *type)
the cast-to type as the variable's type, like GDB's
built-in parser does. For now, assume "int" like GDB's
built-in parser used to do, but at least warn. */
struct type *fallback;
if (type->is_objfile_owned ())
fallback = objfile_type (type->objfile_owner ())->builtin_int;
else
fallback = builtin_type (type->arch_owner ())->builtin_int;
struct type *fallback = builtin_type (type->arch ())->builtin_int;
warning (_("variable has unknown type; assuming int"));
return convert_int (context, fallback);
}

View File

@ -969,10 +969,7 @@ compile_cplus_convert_func (compile_cplus_instance *instance,
GDB's parser used to do. */
if (target_type == nullptr)
{
if (type->is_objfile_owned ())
target_type = objfile_type (type->objfile_owner ())->builtin_int;
else
target_type = builtin_type (type->arch_owner ())->builtin_int;
target_type = builtin_type (type->arch ())->builtin_int;
warning (_("function has unknown return type; assuming int"));
}

View File

@ -1407,10 +1407,7 @@ lookup_array_range_type (struct type *element_type,
struct type *range_type;
type_allocator alloc (element_type);
if (element_type->is_objfile_owned ())
index_type = objfile_type (element_type->objfile_owner ())->builtin_int;
else
index_type = builtin_type (element_type->arch_owner ())->builtin_int;
index_type = builtin_type (element_type->arch ())->builtin_int;
range_type = create_static_range_type (alloc, index_type,
low_bound, high_bound);