Use .def file to stringify type codes
This changes recursive_dump_type to reuse the type-codes.def file when stringifying type codes. This version of the patch changes the "unknown" case to an assert. Acked-By: Simon Marchi <simon.marchi@efficios.com> Reviewed-by: Keith Seitz <keiths@redhat.com>
This commit is contained in:
parent
97b29a61f7
commit
e626733c05
1 changed files with 18 additions and 81 deletions
|
@ -5099,6 +5099,23 @@ dump_dynamic_prop (dynamic_prop const& prop)
|
|||
}
|
||||
}
|
||||
|
||||
/* Return a string that represents a type code. */
|
||||
static const char *
|
||||
type_code_name (type_code code)
|
||||
{
|
||||
switch (code)
|
||||
{
|
||||
#define OP(X) case X: return # X;
|
||||
#include "type-codes.def"
|
||||
#undef OP
|
||||
|
||||
case TYPE_CODE_UNDEF:
|
||||
return "TYPE_CODE_UNDEF";
|
||||
}
|
||||
|
||||
gdb_assert_not_reached ("unhandled type_code");
|
||||
}
|
||||
|
||||
void
|
||||
recursive_dump_type (struct type *type, int spaces)
|
||||
{
|
||||
|
@ -5136,87 +5153,7 @@ recursive_dump_type (struct type *type, int spaces)
|
|||
type->name () ? type->name () : "<NULL>",
|
||||
host_address_to_string (type->name ()));
|
||||
gdb_printf ("%*scode 0x%x ", spaces, "", type->code ());
|
||||
switch (type->code ())
|
||||
{
|
||||
case TYPE_CODE_UNDEF:
|
||||
gdb_printf ("(TYPE_CODE_UNDEF)");
|
||||
break;
|
||||
case TYPE_CODE_PTR:
|
||||
gdb_printf ("(TYPE_CODE_PTR)");
|
||||
break;
|
||||
case TYPE_CODE_ARRAY:
|
||||
gdb_printf ("(TYPE_CODE_ARRAY)");
|
||||
break;
|
||||
case TYPE_CODE_STRUCT:
|
||||
gdb_printf ("(TYPE_CODE_STRUCT)");
|
||||
break;
|
||||
case TYPE_CODE_UNION:
|
||||
gdb_printf ("(TYPE_CODE_UNION)");
|
||||
break;
|
||||
case TYPE_CODE_ENUM:
|
||||
gdb_printf ("(TYPE_CODE_ENUM)");
|
||||
break;
|
||||
case TYPE_CODE_FLAGS:
|
||||
gdb_printf ("(TYPE_CODE_FLAGS)");
|
||||
break;
|
||||
case TYPE_CODE_FUNC:
|
||||
gdb_printf ("(TYPE_CODE_FUNC)");
|
||||
break;
|
||||
case TYPE_CODE_INT:
|
||||
gdb_printf ("(TYPE_CODE_INT)");
|
||||
break;
|
||||
case TYPE_CODE_FLT:
|
||||
gdb_printf ("(TYPE_CODE_FLT)");
|
||||
break;
|
||||
case TYPE_CODE_VOID:
|
||||
gdb_printf ("(TYPE_CODE_VOID)");
|
||||
break;
|
||||
case TYPE_CODE_SET:
|
||||
gdb_printf ("(TYPE_CODE_SET)");
|
||||
break;
|
||||
case TYPE_CODE_RANGE:
|
||||
gdb_printf ("(TYPE_CODE_RANGE)");
|
||||
break;
|
||||
case TYPE_CODE_STRING:
|
||||
gdb_printf ("(TYPE_CODE_STRING)");
|
||||
break;
|
||||
case TYPE_CODE_ERROR:
|
||||
gdb_printf ("(TYPE_CODE_ERROR)");
|
||||
break;
|
||||
case TYPE_CODE_MEMBERPTR:
|
||||
gdb_printf ("(TYPE_CODE_MEMBERPTR)");
|
||||
break;
|
||||
case TYPE_CODE_METHODPTR:
|
||||
gdb_printf ("(TYPE_CODE_METHODPTR)");
|
||||
break;
|
||||
case TYPE_CODE_METHOD:
|
||||
gdb_printf ("(TYPE_CODE_METHOD)");
|
||||
break;
|
||||
case TYPE_CODE_REF:
|
||||
gdb_printf ("(TYPE_CODE_REF)");
|
||||
break;
|
||||
case TYPE_CODE_CHAR:
|
||||
gdb_printf ("(TYPE_CODE_CHAR)");
|
||||
break;
|
||||
case TYPE_CODE_BOOL:
|
||||
gdb_printf ("(TYPE_CODE_BOOL)");
|
||||
break;
|
||||
case TYPE_CODE_COMPLEX:
|
||||
gdb_printf ("(TYPE_CODE_COMPLEX)");
|
||||
break;
|
||||
case TYPE_CODE_TYPEDEF:
|
||||
gdb_printf ("(TYPE_CODE_TYPEDEF)");
|
||||
break;
|
||||
case TYPE_CODE_NAMESPACE:
|
||||
gdb_printf ("(TYPE_CODE_NAMESPACE)");
|
||||
break;
|
||||
case TYPE_CODE_FIXED_POINT:
|
||||
gdb_printf ("(TYPE_CODE_FIXED_POINT)");
|
||||
break;
|
||||
default:
|
||||
gdb_printf ("(UNKNOWN TYPE CODE)");
|
||||
break;
|
||||
}
|
||||
gdb_printf ("(%s)", type_code_name (type->code ()));
|
||||
gdb_puts ("\n");
|
||||
gdb_printf ("%*slength %s\n", spaces, "",
|
||||
pulongest (type->length ()));
|
||||
|
|
Loading…
Add table
Reference in a new issue