fix division by zero in target_read_string()

Under certain circumstances, a floating point exception in
target_read_string() can happen when the type has been obtained
by a call to stpy_lazy_string_elt_type(). In the latter function,
a call to check_typedef() has been forgotten. This makes
type->length = 0 in this case.
This commit is contained in:
Kilian Kilger 2024-05-26 10:41:12 +02:00 committed by Tom Tromey
parent ce6b89bfdf
commit 8130c1a430

View file

@ -266,7 +266,7 @@ stpy_lazy_string_elt_type (lazy_string_object *lazy)
{
case TYPE_CODE_PTR:
case TYPE_CODE_ARRAY:
return realtype->target_type ();
return check_typedef (realtype->target_type ());
default:
/* This is done to preserve existing behaviour. PR 20769.
E.g., gdb.parse_and_eval("my_int_variable").lazy_string().type. */