Commit 872aec4b authored by Andrii Nakryiko's avatar Andrii Nakryiko Committed by Daniel Borkmann
Browse files

libbpf: Fix single-line struct definition output in btf_dump



btf_dump APIs emit unnecessary tabs when emitting struct/union
definition that fits on the single line. Before this patch we'd get:

struct blah {<tab>};

This patch fixes this and makes sure that we get more natural:

struct blah {};

Fixes: 44a726c3 ("bpftool: Print newline before '}' for struct with padding only fields")
Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20221212211505.558851-2-andrii@kernel.org
parent c9883ee9
Loading
Loading
Loading
Loading
+5 −2
Original line number Original line Diff line number Diff line
@@ -959,9 +959,12 @@ static void btf_dump_emit_struct_def(struct btf_dump *d,
	 * Keep `struct empty {}` on a single line,
	 * Keep `struct empty {}` on a single line,
	 * only print newline when there are regular or padding fields.
	 * only print newline when there are regular or padding fields.
	 */
	 */
	if (vlen || t->size)
	if (vlen || t->size) {
		btf_dump_printf(d, "\n");
		btf_dump_printf(d, "\n");
		btf_dump_printf(d, "%s}", pfx(lvl));
		btf_dump_printf(d, "%s}", pfx(lvl));
	} else {
		btf_dump_printf(d, "}");
	}
	if (packed)
	if (packed)
		btf_dump_printf(d, " __attribute__((packed))");
		btf_dump_printf(d, " __attribute__((packed))");
}
}