aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/ada-typeprint.c75
-rw-r--r--gdb/testsuite/ChangeLog4
-rw-r--r--gdb/testsuite/gdb.ada/packed_array.exp2
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.