Prettify output of debug_dwarf_die
Checks
Context |
Check |
Description |
linaro-tcwg-bot/tcwg_gcc_build--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gcc_check--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gcc_check--master-aarch64 |
success
|
Testing passed
|
Commit Message
When debugging gcc, I tried calling debug_dwarf_die and I saw this
output:
DW_AT_location: location descriptor:
(0x7fffe9c2e870) DW_OP_dup 0, 0
(0x7fffe9c2e8c0) DW_OP_bra location descriptor (0x7fffe9c2e640)
, 0
(0x7fffe9c2e820) DW_OP_lit4 4, 0
(0x7fffe9c2e910) DW_OP_skip location descriptor (0x7fffe9c2e9b0)
, 0
(0x7fffe9c2e640) DW_OP_dup 0, 0
I think those ", 0" should not appear on their own lines. The issue
seems to be that print_dw_val should not generally emit a newline,
except when recursing.
gcc/ChangeLog
* dwarf2out.cc (print_dw_val) <dw_val_class_loc>: Don't
print newline when not recursing.
---
gcc/dwarf2out.cc | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Comments
On Thu, Mar 28, 2024 at 8:35 PM Tom Tromey <tromey@adacore.com> wrote:
>
> When debugging gcc, I tried calling debug_dwarf_die and I saw this
> output:
>
> DW_AT_location: location descriptor:
> (0x7fffe9c2e870) DW_OP_dup 0, 0
> (0x7fffe9c2e8c0) DW_OP_bra location descriptor (0x7fffe9c2e640)
> , 0
> (0x7fffe9c2e820) DW_OP_lit4 4, 0
> (0x7fffe9c2e910) DW_OP_skip location descriptor (0x7fffe9c2e9b0)
> , 0
> (0x7fffe9c2e640) DW_OP_dup 0, 0
>
> I think those ", 0" should not appear on their own lines. The issue
> seems to be that print_dw_val should not generally emit a newline,
> except when recursing.
OK.
> gcc/ChangeLog
>
> * dwarf2out.cc (print_dw_val) <dw_val_class_loc>: Don't
> print newline when not recursing.
> ---
> gcc/dwarf2out.cc | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc
> index 8f18bc4fe64..1b0e8b5a5b2 100644
> --- a/gcc/dwarf2out.cc
> +++ b/gcc/dwarf2out.cc
> @@ -6651,7 +6651,7 @@ print_dw_val (dw_val_node *val, bool recurse, FILE *outfile)
> case dw_val_class_loc:
> fprintf (outfile, "location descriptor");
> if (val->v.val_loc == NULL)
> - fprintf (outfile, " -> <null>\n");
> + fprintf (outfile, " -> <null>");
> else if (recurse)
> {
> fprintf (outfile, ":\n");
> @@ -6662,9 +6662,9 @@ print_dw_val (dw_val_node *val, bool recurse, FILE *outfile)
> else
> {
> if (flag_dump_noaddr || flag_dump_unnumbered)
> - fprintf (outfile, " #\n");
> + fprintf (outfile, " #");
> else
> - fprintf (outfile, " (%p)\n", (void *) val->v.val_loc);
> + fprintf (outfile, " (%p)", (void *) val->v.val_loc);
> }
> break;
> case dw_val_class_loc_list:
> --
> 2.43.0
>
@@ -6651,7 +6651,7 @@ print_dw_val (dw_val_node *val, bool recurse, FILE *outfile)
case dw_val_class_loc:
fprintf (outfile, "location descriptor");
if (val->v.val_loc == NULL)
- fprintf (outfile, " -> <null>\n");
+ fprintf (outfile, " -> <null>");
else if (recurse)
{
fprintf (outfile, ":\n");
@@ -6662,9 +6662,9 @@ print_dw_val (dw_val_node *val, bool recurse, FILE *outfile)
else
{
if (flag_dump_noaddr || flag_dump_unnumbered)
- fprintf (outfile, " #\n");
+ fprintf (outfile, " #");
else
- fprintf (outfile, " (%p)\n", (void *) val->v.val_loc);
+ fprintf (outfile, " (%p)", (void *) val->v.val_loc);
}
break;
case dw_val_class_loc_list: