aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@adacore.com>2020-11-23 22:03:36 -0500
committerJoel Brobecker <brobecker@adacore.com>2020-11-23 22:03:36 -0500
commit4afa9fd9b043ea54b750c8bfe73fb5320c6fc683 (patch)
treedfb28da253ee78c5fa2b392fafd9b167c671e1be
parentaf619ce989a51864b1c2b8c2eef7c46ffe1ff256 (diff)
downloadgdb-4afa9fd9b043ea54b750c8bfe73fb5320c6fc683.zip
gdb-4afa9fd9b043ea54b750c8bfe73fb5320c6fc683.tar.gz
gdb-4afa9fd9b043ea54b750c8bfe73fb5320c6fc683.tar.bz2
Add TYPE_CODE_FIXED_POINT handling in print_type_scalar
This commit enhances print_type_scalar to include support for TYPE_CODE_FIXED_POINT. This way, any language falling back to this function for printing the description of some types also gets basic ptype support for fixed point types as well. This fixes a couple of XFAILs in gdb.dwarf2/dw2-fixed-point.exp. gdb/ChangeLog: * typeprint.c (print_type_scalar): Add handling of TYPE_CODE_FIXED_POINT. gdb/testsuite/ChangeLog: * gdb.dwarf2/dw2-fixed-point.exp: Fix the expected output of the "ptype pck__fp1_range_var" test for the module-2 and pascal languages. Remove the associated setup_xfail.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-fixed-point.exp28
-rw-r--r--gdb/typeprint.c4
4 files changed, 33 insertions, 10 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 0146874..35940d5 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2020-11-24 Joel Brobecker <brobecker@adacore.com>
+ * typeprint.c (print_type_scalar): Add handling of
+ TYPE_CODE_FIXED_POINT.
+
+2020-11-24 Joel Brobecker <brobecker@adacore.com>
+
* valarith.c (fixed_point_binop): Replace the
INIT_VAL_WITH_FIXED_POINT_VAL macro by a lambda. Update all
users accordingly.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index d6358dd..fa1f0e8 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2020-11-24 Joel Brobecker <brobecker@adacore.com>
+
+ * gdb.dwarf2/dw2-fixed-point.exp: Fix the expected output of
+ the "ptype pck__fp1_range_var" test for the module-2 and pascal
+ languages. Remove the associated setup_xfail.
+
2020-11-23 Simon Marchi <simon.marchi@efficios.com>
* lib/gdb.exp (gdb_assert): Show error message on error.
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-fixed-point.exp b/gdb/testsuite/gdb.dwarf2/dw2-fixed-point.exp
index a82a9af..67d1d34 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-fixed-point.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-fixed-point.exp
@@ -278,9 +278,6 @@ proc do_ptype_test {lang fp1_re fp2_re fp3_re fp1_range_re} {
gdb_test "ptype pck__fp3_var" $fp3_re
- if { $lang == "modula-2" || $lang == "pascal" } {
- setup_xfail "*-*-*" "not supported by language"
- }
gdb_test "ptype pck__fp1_range_var" $fp1_range_re
}
}
@@ -299,10 +296,21 @@ foreach lang [list "c" "d" "go" "objective-c" "opencl" ] {
" = <range type>"
}
-foreach lang [list "fortran" "modula-2" "pascal" ] {
- do_ptype_test $lang \
- " = pck__fp1_type" \
- " = pck__fp2_type" \
- " = pck__fp3_type" \
- " = <range type>"
-}
+do_ptype_test "fortran" \
+ " = pck__fp1_type" \
+ " = pck__fp2_type" \
+ " = pck__fp3_type" \
+ " = <range type>"
+
+do_ptype_test "modula-2" \
+ " = pck__fp1_type" \
+ " = pck__fp2_type" \
+ " = pck__fp3_type" \
+ " = \\\[1-byte fixed point \\(small = 1/16\\)\\.\\.1-byte fixed point \\(small = 1/16\\)\\\]"
+
+do_ptype_test "pascal" \
+ " = pck__fp1_type" \
+ " = pck__fp2_type" \
+ " = pck__fp3_type" \
+ " = 1-byte fixed point \\(small = 1/16\\)\\.\\.1-byte fixed point \\(small = 1/16\\)"
+
diff --git a/gdb/typeprint.c b/gdb/typeprint.c
index a3fc9cc..47019a2 100644
--- a/gdb/typeprint.c
+++ b/gdb/typeprint.c
@@ -637,6 +637,10 @@ print_type_scalar (struct type *type, LONGEST val, struct ui_file *stream)
print_type_scalar (TYPE_TARGET_TYPE (type), val, stream);
return;
+ case TYPE_CODE_FIXED_POINT:
+ print_type_fixed_point (type, stream);
+ break;
+
case TYPE_CODE_UNDEF:
case TYPE_CODE_PTR:
case TYPE_CODE_ARRAY: