+2021-04-22 Tom Tromey <tom@tromey.com>
+
+ * c-typeprint.c (c_type_print_base_struct_union): Use
+ print_spaces_filtered_with_print_options.
+
2021-04-22 Simon Marchi <simon.marchi@polymtl.ca>
PR gdb/27757
if (type->num_fields () == 0 && TYPE_NFN_FIELDS (type) == 0
&& TYPE_TYPEDEF_FIELD_COUNT (type) == 0)
{
+ print_spaces_filtered_with_print_options (level + 4, stream, flags);
if (type->is_stub ())
- fprintf_filtered (stream, _("%*s%p[<incomplete type>%p]\n"),
- level + 4, "",
+ fprintf_filtered (stream, _("%p[<incomplete type>%p]\n"),
metadata_style.style ().ptr (), nullptr);
else
- fprintf_filtered (stream, _("%*s%p[<no data fields>%p]\n"),
- level + 4, "",
+ fprintf_filtered (stream, _("%p[<no data fields>%p]\n"),
metadata_style.style ().ptr (), nullptr);
}
+2021-04-22 Tom Tromey <tom@tromey.com>
+
+ * gdb.base/ptype-offsets.cc (struct empty_member): New.
+ (main): Use empty_member.
+ * gdb.base/ptype-offsets.exp: Add new test.
+
2021-04-22 Simon Marchi <simon.marchi@polymtl.ca>
* gdb.python/flexible-array-member.exp: Add check for Python
int abc;
};
+struct empty_member
+{
+ struct { } empty;
+ int an_int;
+};
+
int
main (int argc, char *argv[])
{
struct asd f;
uint8_t i;
static_member stmember;
+ empty_member emember;
return 0;
}
[string_to_regexp [multi_line \
"/* offset | size */ type = struct static_member \{" \
" static static_member Empty;" \
-"\/* 0 | 4 */ int abc;" \
+"/* 0 | 4 */ int abc;" \
"" \
" /* total size (bytes): 4 */" \
" \}"]]
+
+# Test that the "no data fields" text is indented properly.
+gdb_test "ptype/o empty_member" \
+ [string_to_regexp [multi_line \
+"/* offset | size */ type = struct empty_member \{" \
+"/* 0 | 1 */ struct {" \
+" <no data fields>" \
+"" \
+" /* total size (bytes): 1 */" \
+" } empty;" \
+"/* XXX 3-byte hole */" \
+"/* 4 | 4 */ int an_int;" \
+"" \
+" /* total size (bytes): 8 */" \
+" \}"]]