]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
Add support for low-level dwarflint checks for call_site and entry_value. mjw/call_site
authorMark Wielaard <mjw@redhat.com>
Wed, 23 Mar 2011 12:31:06 +0000 (13:31 +0100)
committerMark Wielaard <mjw@redhat.com>
Wed, 23 Mar 2011 12:31:06 +0000 (13:31 +0100)
dwarflint/dwarf_gnu.cc
src/dwarf-opcodes.h

index 6335abb46396202921c00028b0b5719945da83e9..b70a6d2d5dd4e59f495fa7d0df904155bf925d32 100644 (file)
@@ -69,6 +69,17 @@ namespace
       add (const_attribute (DW_AT_GNU_odr_signature));
 
       add (string_attribute (DW_AT_GNU_template_name)); // xxx ???
+
+      // GNU extensions for representation of call sites
+      // http://www.dwarfstd.org/ShowIssue.php?issue=100909.2
+      add (attribute (DW_AT_GNU_call_site_value, cl_exprloc));
+      add (attribute (DW_AT_GNU_call_site_data_value, cl_exprloc));
+      add (attribute (DW_AT_GNU_call_site_target, cl_exprloc));
+      add (attribute (DW_AT_GNU_call_site_target_clobbered, cl_exprloc));
+      add (flag_attribute (DW_AT_GNU_tail_call));
+      add (flag_attribute (DW_AT_GNU_all_tail_call_sites));
+      add (flag_attribute (DW_AT_GNU_all_call_sites));
+      add (flag_attribute (DW_AT_GNU_all_source_call_sites));
     }
   };
 
index f80deff3c66c4663678c52af987ca782e0e8e7e1..3631bef34559cfab978256247d373e71e7b3d145 100644 (file)
   DW_OP_0 (DW_OP_stack_value)                                  \
   DW_OP_1 (DW_OP_implicit_value, DW_FORM_block)                        \
   /* GNU extensions */                                         \
-  DW_OP_2 (DW_OP_GNU_implicit_pointer, DW_FORM_ref_addr, DW_FORM_sdata)
+  DW_OP_2 (DW_OP_GNU_implicit_pointer, DW_FORM_ref_addr, DW_FORM_sdata) \
+  /* GNU variant for tracking of values passed as arguments to functions.  */ \
+  /* http://www.dwarfstd.org/ShowIssue.php?issue=100909.1 */   \
+  DW_OP_1 (DW_OP_GNU_entry_value, DW_FORM_block)