diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/ada-typeprint.c | 75 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/packed_array.exp | 2 |
4 files changed, 45 insertions, 41 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 292b899..572faa2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2011-07-01 Jean-Charles Delay <delay@adacore.com> + + * ada-typeprint.c (print_array_type): removed if condition on show + being negative for bounds printing. + 2011-07-01 Joel Brobecker <brobecker@adacore.com> * ada-lang.c (ada_identical_enum_types_p): New function. diff --git a/gdb/ada-typeprint.c b/gdb/ada-typeprint.c index 737e097..ff1b524 100644 --- a/gdb/ada-typeprint.c +++ b/gdb/ada-typeprint.c @@ -340,57 +340,52 @@ print_array_type (struct type *type, struct ui_file *stream, int show, } n_indices = -1; - if (show < 0) - fprintf_filtered (stream, "..."); - else + if (ada_is_simple_array_type (type)) { - if (ada_is_simple_array_type (type)) - { - struct type *range_desc_type; - struct type *arr_type; + struct type *range_desc_type; + struct type *arr_type; - range_desc_type = ada_find_parallel_type (type, "___XA"); - ada_fixup_array_indexes_type (range_desc_type); + range_desc_type = ada_find_parallel_type (type, "___XA"); + ada_fixup_array_indexes_type (range_desc_type); - bitsize = 0; - if (range_desc_type == NULL) - { - for (arr_type = type; TYPE_CODE (arr_type) == TYPE_CODE_ARRAY; - arr_type = TYPE_TARGET_TYPE (arr_type)) - { - if (arr_type != type) - fprintf_filtered (stream, ", "); - print_range (TYPE_INDEX_TYPE (arr_type), stream); - if (TYPE_FIELD_BITSIZE (arr_type, 0) > 0) - bitsize = TYPE_FIELD_BITSIZE (arr_type, 0); - } - } - else + bitsize = 0; + if (range_desc_type == NULL) + { + for (arr_type = type; TYPE_CODE (arr_type) == TYPE_CODE_ARRAY; + arr_type = TYPE_TARGET_TYPE (arr_type)) { - int k; - - n_indices = TYPE_NFIELDS (range_desc_type); - for (k = 0, arr_type = type; - k < n_indices; - k += 1, arr_type = TYPE_TARGET_TYPE (arr_type)) - { - if (k > 0) - fprintf_filtered (stream, ", "); - print_range_type (TYPE_FIELD_TYPE (range_desc_type, k), - stream); - if (TYPE_FIELD_BITSIZE (arr_type, 0) > 0) - bitsize = TYPE_FIELD_BITSIZE (arr_type, 0); - } + if (arr_type != type) + fprintf_filtered (stream, ", "); + print_range (TYPE_INDEX_TYPE (arr_type), stream); + if (TYPE_FIELD_BITSIZE (arr_type, 0) > 0) + bitsize = TYPE_FIELD_BITSIZE (arr_type, 0); } } else { - int i, i0; + int k; - for (i = i0 = ada_array_arity (type); i > 0; i -= 1) - fprintf_filtered (stream, "%s<>", i == i0 ? "" : ", "); + n_indices = TYPE_NFIELDS (range_desc_type); + for (k = 0, arr_type = type; + k < n_indices; + k += 1, arr_type = TYPE_TARGET_TYPE (arr_type)) + { + if (k > 0) + fprintf_filtered (stream, ", "); + print_range_type (TYPE_FIELD_TYPE (range_desc_type, k), + stream); + if (TYPE_FIELD_BITSIZE (arr_type, 0) > 0) + bitsize = TYPE_FIELD_BITSIZE (arr_type, 0); + } } } + else + { + int i, i0; + + for (i = i0 = ada_array_arity (type); i > 0; i -= 1) + fprintf_filtered (stream, "%s<>", i == i0 ? "" : ", "); + } fprintf_filtered (stream, ") of "); wrap_here (""); diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 0bea0b5..c684ee6 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2011-07-01 Jean-Charles Delay <delay@adacore.com> + + * gdb.ada/packed_array.exp: fixed expected output. + 2011-07-01 Joel Brobecker <brobecker@adacore.com> * gdb.ada/same_enum: New testcase. diff --git a/gdb/testsuite/gdb.ada/packed_array.exp b/gdb/testsuite/gdb.ada/packed_array.exp index fc4dd17..3318873 100644 --- a/gdb/testsuite/gdb.ada/packed_array.exp +++ b/gdb/testsuite/gdb.ada/packed_array.exp @@ -48,7 +48,7 @@ gdb_test "ptype &var" \ "ptype &var" gdb_test "print &var" \ - "= \\(access array \\(\\.\\.\\.\\) of boolean\\) \\(4 => true, false, true, false, true\\)" \ + "= \\(access array \\(4 \\.\\. 8\\) of boolean <packed: 1-bit elements>\\) \\(4 => true, false, true, false, true\\)" \ "print &var" # Print the value of U_Var, an unconstrainted packed array. |