From 334381ea466c4735fe533a9864991b862c094b60 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sat, 15 May 2021 08:31:42 -0600 Subject: [PATCH] Style the "XXX" text in ptype/o This patch changes gdb to use the 'highlight' style on the "XXX" text in the output of ptype/o. --- gdb/testsuite/gdb.base/style.c | 7 +++++++ gdb/testsuite/gdb.base/style.exp | 18 ++++++++++++++++++ gdb/typeprint.c | 14 ++++++++++---- 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/gdb/testsuite/gdb.base/style.c b/gdb/testsuite/gdb.base/style.c index 59707b3af55..6a7934fb9b2 100644 --- a/gdb/testsuite/gdb.base/style.c +++ b/gdb/testsuite/gdb.base/style.c @@ -34,6 +34,13 @@ struct some_struct struct some_struct struct_value = { 23, "skidoo", VALUE_TWO }; +struct just_bitfield +{ + unsigned int field : 3; +}; + +struct just_bitfield just_bitfield_value = { 4 }; + int some_called_function (void) { return 0; diff --git a/gdb/testsuite/gdb.base/style.exp b/gdb/testsuite/gdb.base/style.exp index 4a3428bc63f..d804853a504 100644 --- a/gdb/testsuite/gdb.base/style.exp +++ b/gdb/testsuite/gdb.base/style.exp @@ -197,6 +197,24 @@ proc run_style_tests { } { gdb_test "print struct_value" \ "\{$ifield = 23,.*$sfield = .*,.*$efield = $evalue.*" + set ffield [limited_style field variable] + set cstart [string_to_regexp "/* XXX "] + set cend [string_to_regexp " */"] + set p1field [limited_style "$cstart.*$decimal.*-bit.*padding.*$cend" \ + highlight] + set p2field [limited_style "$cstart.*$decimal.*-byte.*padding.*$cend" \ + highlight] + + gdb_test "ptype/o just_bitfield_value" \ + [multi_line \ + ".* type = struct just_bitfield {" \ + ".* unsigned int $ffield : 3;" \ + "$p1field" \ + "$p2field" \ + "" \ + ".* total size.*: *$decimal *$cend" \ + " *}.*"] + set address_style_expr [limited_style ".*\".*address.*\".*style.*" address] set color "blue" if { $currently_disabled_style == "address" } { diff --git a/gdb/typeprint.c b/gdb/typeprint.c index 0776f634215..ed391411dfe 100644 --- a/gdb/typeprint.c +++ b/gdb/typeprint.c @@ -104,12 +104,18 @@ print_offset_data::maybe_print_hole (struct ui_file *stream, unsigned int hole_bit = hole % TARGET_CHAR_BIT; if (hole_bit > 0) - fprintf_filtered (stream, "/* XXX %2u-bit %-7s */\n", hole_bit, - for_what); + { + fprintf_styled (stream, highlight_style.style (), + "/* XXX %2u-bit %-7s */", hole_bit, for_what); + fputs_filtered ("\n", stream); + } if (hole_byte > 0) - fprintf_filtered (stream, "/* XXX %2u-byte %-7s */\n", hole_byte, - for_what); + { + fprintf_styled (stream, highlight_style.style (), + "/* XXX %2u-byte %-7s */", hole_byte, for_what); + fputs_filtered ("\n", stream); + } } } -- 2.30.2