aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2011-04-27 12:09:48 +0000
committerTristan Gingold <gingold@adacore.com>2011-04-27 12:09:48 +0000
commit43294ab7fc33c09cb2c44763c0a79ea0db679408 (patch)
tree3bb7c6b0f919a542b1e8147c743c06e1d3c51353
parentf6d903988c5983e2882e3448dc1a059ef4c888a4 (diff)
downloadfsf-binutils-gdb-43294ab7fc33c09cb2c44763c0a79ea0db679408.zip
fsf-binutils-gdb-43294ab7fc33c09cb2c44763c0a79ea0db679408.tar.gz
fsf-binutils-gdb-43294ab7fc33c09cb2c44763c0a79ea0db679408.tar.bz2
2011-04-27 Tristan Gingold <gingold@adacore.com>
* dwarf.c (process_extended_line_op): Handle DW_LNE_HP_source_file_correlation.
-rw-r--r--binutils/ChangeLog5
-rw-r--r--binutils/dwarf.c47
2 files changed, 52 insertions, 0 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 8862fb9..ddfe2b9 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,8 @@
+2011-04-27 Tristan Gingold <gingold@adacore.com>
+
+ * dwarf.c (process_extended_line_op): Handle
+ DW_LNE_HP_source_file_correlation.
+
2011-04-27 Nick Clifton <nickc@redhat.com>
* po/da.po: Updated Danish translation.
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 8846e87..cc85525 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -324,6 +324,53 @@ process_extended_line_op (unsigned char *data, int is_stmt)
case DW_LNE_HP_define_proc:
printf ("DW_LNE_HP_define_proc\n");
break;
+ case DW_LNE_HP_source_file_correlation:
+ {
+ unsigned char *edata = data + len - bytes_read - 1;
+
+ printf ("DW_LNE_HP_source_file_correlation\n");
+
+ while (data < edata)
+ {
+ unsigned int opc;
+
+ opc = read_leb128 (data, & bytes_read, 0);
+ data += bytes_read;
+
+ switch (opc)
+ {
+ case DW_LNE_HP_SFC_formfeed:
+ printf (" DW_LNE_HP_SFC_formfeed\n");
+ break;
+ case DW_LNE_HP_SFC_set_listing_line:
+ printf (" DW_LNE_HP_SFC_set_listing_line (%s)\n",
+ dwarf_vmatoa ("u",
+ read_leb128 (data, & bytes_read, 0)));
+ data += bytes_read;
+ break;
+ case DW_LNE_HP_SFC_associate:
+ printf (" DW_LNE_HP_SFC_associate ");
+ printf (_("(%s"),
+ dwarf_vmatoa ("u",
+ read_leb128 (data, & bytes_read, 0)));
+ data += bytes_read;
+ printf (_(",%s"),
+ dwarf_vmatoa ("u",
+ read_leb128 (data, & bytes_read, 0)));
+ data += bytes_read;
+ printf (_(",%s)\n"),
+ dwarf_vmatoa ("u",
+ read_leb128 (data, & bytes_read, 0)));
+ data += bytes_read;
+ break;
+ default:
+ printf (" UNKNOW DW_LNE_HP_SFC opcode (%u)\n", opc);
+ data = edata;
+ break;
+ }
+ }
+ }
+ break;
default:
if (op_code >= DW_LNE_lo_user