2011-04-27 Tristan Gingold <gingold@adacore.com>
authorTristan Gingold <gingold@adacore.com>
Wed, 27 Apr 2011 12:09:48 +0000 (12:09 +0000)
committerTristan Gingold <gingold@adacore.com>
Wed, 27 Apr 2011 12:09:48 +0000 (12:09 +0000)
        * dwarf.c (process_extended_line_op): Handle
        DW_LNE_HP_source_file_correlation.

binutils/ChangeLog
binutils/dwarf.c

index 8862fb92322b76f0e35b3477ee2df1fb22904bf8..ddfe2b98564470cda80d3ed913394dedd9ac9c9e 100644 (file)
@@ -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.
index 8846e8750eff8bebbb48adf9bdc2123a38292277..cc85525aed3475d734dbf16d3ba34c0a6d2f60cb 100644 (file)
@@ -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