]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Add experimental DWARF-5 values for two-level line number tables.
authorCary Coutant <ccoutant@google.com>
Tue, 23 Dec 2014 22:44:58 +0000 (14:44 -0800)
committerCary Coutant <ccoutant@google.com>
Tue, 31 Mar 2015 17:51:09 +0000 (10:51 -0700)
http://wiki.dwarfstd.org/index.php?title=TwoLevelLineTables

2014-12-23  Cary Coutant  <ccoutant@google.com>

include/
* dwarf2.def (DW_FORM_line_strp): New constant.
* dwarf2.h (enum dwarf_line_number_ops): Add DW_LNS_inlined_call,
DW_LNS_pop_context, DW_LNS_set_context,
DW_LNS_set_address_from_logical.
(enum dwarf_line_number_content_type): Add new DW_LNCT_ codes.

include/dwarf2.def
include/dwarf2.h

index e61cfbeb4076742b96a7ecb7a2c26a6a2c9f62f4..4f1a7486d874b1ee7e284762272c028370aa3de6 100644 (file)
@@ -202,6 +202,8 @@ DW_FORM (DW_FORM_sec_offset, 0x17)
 DW_FORM (DW_FORM_exprloc, 0x18)
 DW_FORM (DW_FORM_flag_present, 0x19)
 DW_FORM (DW_FORM_ref_sig8, 0x20)
+/* DWARF 5.  */
+DW_FORM (DW_FORM_line_strp, 0x1f)
 /* Extensions for Fission.  See http://gcc.gnu.org/wiki/DebugFission.  */
 DW_FORM (DW_FORM_GNU_addr_index, 0x1f01)
 DW_FORM (DW_FORM_GNU_str_index, 0x1f02)
index 4ada87162fa868eb80c6994e1877c6d9897ae732..6c08d3343d0c4112e09bb0612400e202e0c3daa8 100644 (file)
@@ -222,7 +222,13 @@ enum dwarf_line_number_ops
     /* DWARF 3.  */
     DW_LNS_set_prologue_end = 10,
     DW_LNS_set_epilogue_begin = 11,
-    DW_LNS_set_isa = 12
+    DW_LNS_set_isa = 12,
+    /* Experimental DWARF 5 extensions.
+       See http://wiki.dwarfstd.org/index.php?title=TwoLevelLineTables.  */
+    DW_LNS_set_address_from_logical = 13, /* Actuals table only.  */
+    DW_LNS_set_subprogram = 13,           /* Logicals table only.  */
+    DW_LNS_inlined_call = 14,             /* Logicals table only.  */
+    DW_LNS_pop_context = 15               /* Logicals table only.  */
   };
 
 /* Line number extended opcodes.  */
@@ -268,6 +274,22 @@ enum dwarf_location_list_entry_type
     DW_LLE_GNU_start_length_entry = 3
   };
 
+/* Type codes for line number program content descriptors (DWARF 5).  */
+
+enum dwarf_line_number_content_type
+  {
+    DW_LNCT_path = 1,
+    DW_LNCT_directory_index = 2,
+    DW_LNCT_timestamp = 3,
+    DW_LNCT_size = 4,
+    DW_LNCT_MD5 = 5,
+    /* Experimental DWARF 5 extensions.
+       See http://wiki.dwarfstd.org/index.php?title=TwoLevelLineTables.  */
+    DW_LNCT_subprogram_name = 6,
+    DW_LNCT_decl_file = 7,
+    DW_LNCT_decl_line = 8
+  };
+
 #define DW_CIE_ID        0xffffffff
 #define DW64_CIE_ID      0xffffffffffffffffULL
 #define DW_CIE_VERSION   1