mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 06:45:56 +08:00
* ada-lang.c (decode_packed_array_type): Avoid a seg fault
when the type is an anonymous pointer type. (ada_check_typedef): Avoid a seg fault when the type is null. * ada-typeprint.c (print_array_type): Add support for pointer to packed arrays.
This commit is contained in:
@ -366,6 +366,9 @@ print_array_type (struct type *type, struct ui_file *stream, int show,
|
||||
int bitsize;
|
||||
int n_indices;
|
||||
|
||||
if (ada_is_packed_array_type (type))
|
||||
type = ada_coerce_to_simple_array_type (type);
|
||||
|
||||
bitsize = 0;
|
||||
fprintf_filtered (stream, "array (");
|
||||
|
||||
@ -374,8 +377,6 @@ print_array_type (struct type *type, struct ui_file *stream, int show,
|
||||
fprintf_filtered (stream, "...");
|
||||
else
|
||||
{
|
||||
if (ada_is_packed_array_type (type))
|
||||
type = ada_coerce_to_simple_array_type (type);
|
||||
if (type == NULL)
|
||||
{
|
||||
fprintf_filtered (stream, _("<undecipherable array type>"));
|
||||
@ -782,7 +783,17 @@ ada_print_type (struct type *type0, char *varstring, struct ui_file *stream,
|
||||
if (ada_is_aligner_type (type))
|
||||
ada_print_type (ada_aligned_type (type), "", stream, show, level);
|
||||
else if (ada_is_packed_array_type (type))
|
||||
print_array_type (type, stream, show, level);
|
||||
{
|
||||
if (TYPE_CODE (type) == TYPE_CODE_PTR)
|
||||
{
|
||||
fprintf_filtered (stream, "access ");
|
||||
print_array_type (TYPE_TARGET_TYPE (type), stream, show, level);
|
||||
}
|
||||
else
|
||||
{
|
||||
print_array_type (type, stream, show, level);
|
||||
}
|
||||
}
|
||||
else
|
||||
switch (TYPE_CODE (type))
|
||||
{
|
||||
|
Reference in New Issue
Block a user