From 49c206bdc316e3722012751d66300015e45a1a20 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 23 Mar 2011 13:31:06 +0100 Subject: Add support for low-level dwarflint checks for call_site and entry_value. --- dwarflint/dwarf_gnu.cc | 11 +++++++++++ src/dwarf-opcodes.h | 5 ++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/dwarflint/dwarf_gnu.cc b/dwarflint/dwarf_gnu.cc index 6335abb4..b70a6d2d 100644 --- a/dwarflint/dwarf_gnu.cc +++ b/dwarflint/dwarf_gnu.cc @@ -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)); } }; diff --git a/src/dwarf-opcodes.h b/src/dwarf-opcodes.h index f80deff3..3631bef3 100644 --- a/src/dwarf-opcodes.h +++ b/src/dwarf-opcodes.h @@ -206,4 +206,7 @@ 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) -- cgit v1.2.1