return width;
}
+static inline void
+show_note (int (*get) (Dwarf_Line *, bool *),
+ Dwarf_Line *info,
+ const char *note)
+{
+ bool flag;
+ if ((*get) (info, &flag) == 0 && flag)
+ fputs (note, stdout);
+}
+
+static inline void
+show_int (int (*get) (Dwarf_Line *, unsigned int *),
+ Dwarf_Line *info,
+ const char *name)
+{
+ unsigned int val;
+ if ((*get) (info, &val) == 0 && val != 0)
+ printf (" (%s %u)", name, val);
+}
+
static int
handle_address (const char *string, Dwfl *dwfl)
{
Dwarf_Line *info = dwfl_dwarf_line (line, &bias);
assert (info != NULL);
- inline void show (int (*get) (Dwarf_Line *, bool *),
- const char *note)
- {
- bool flag;
- if ((*get) (info, &flag) == 0 && flag)
- fputs (note, stdout);
- }
- inline void show_int (int (*get) (Dwarf_Line *, unsigned int *),
- const char *name)
- {
- unsigned int val;
- if ((*get) (info, &val) == 0 && val != 0)
- printf (" (%s %u)", name, val);
- }
-
- show (&dwarf_linebeginstatement, " (is_stmt)");
- show (&dwarf_lineblock, " (basic_block)");
- show (&dwarf_lineprologueend, " (prologue_end)");
- show (&dwarf_lineepiloguebegin, " (epilogue_begin)");
- show_int (&dwarf_lineisa, "isa");
- show_int (&dwarf_linediscriminator, "discriminator");
+ show_note (&dwarf_linebeginstatement, info, " (is_stmt)");
+ show_note (&dwarf_lineblock, info, " (basic_block)");
+ show_note (&dwarf_lineprologueend, info, " (prologue_end)");
+ show_note (&dwarf_lineepiloguebegin, info, " (epilogue_begin)");
+ show_int (&dwarf_lineisa, info, "isa");
+ show_int (&dwarf_linediscriminator, info, "discriminator");
}
putchar ('\n');
}