aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2024-03-05 17:14:15 -0300
committerArnaldo Carvalho de Melo <acme@redhat.com>2024-03-07 17:00:52 -0300
commitc52e4b7af88da5ab7c55f0fa643c31cb7a1c896f (patch)
treead05f47917cca0c38ab7ea48dcfc05dd325226f1
parent1ecde473f9a07ac8c8d225119eac2192413f3271 (diff)
downloadpahole-c52e4b7af88da5ab7c55f0fa643c31cb7a1c896f.tar.gz
fprintf: Update the 'last' member when not finding the type for the current member
The logic expects that, even with this being an extreme case of broken type info, as the types _should_ be resolved. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r--dwarves_fprintf.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/dwarves_fprintf.c b/dwarves_fprintf.c
index a3c6221f..d67e10f0 100644
--- a/dwarves_fprintf.c
+++ b/dwarves_fprintf.c
@@ -1712,7 +1712,7 @@ static size_t __class__fprintf(struct class *class, const struct cu *cu,
if (pos_type == NULL) {
printed += fprintf(fp, "%.*s", cconf.indent, tabs);
printed += tag__id_not_found_fprintf(fp, pos->tag.type);
- continue;
+ goto next_member;
}
/*
* Now check if this isn't something like 'unsigned :N' with N > 0,
@@ -1775,7 +1775,7 @@ static size_t __class__fprintf(struct class *class, const struct cu *cu,
if (pos_type == NULL) {
printed += fprintf(fp, "%.*s", cconf.indent, tabs);
printed += tag__id_not_found_fprintf(fp, pos->tag.type);
- continue;
+ goto next_member;
}
cconf.last_member = list_is_last(&tag_pos->node, &type->namespace.tags);
@@ -1870,7 +1870,7 @@ static size_t __class__fprintf(struct class *class, const struct cu *cu,
*/
last_size = size;
}
-
+next_member:
last = pos;
}