aboutsummaryrefslogtreecommitdiffstats
path: root/debug/DwarfTypes.mli
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2015-10-15 13:15:28 +0200
committerBernhard Schommer <bernhardschommer@gmail.com>2015-10-15 13:15:28 +0200
commit1e52bb2001964d87086cea00d0cb779e270b99ce (patch)
tree1a4c629ee6b8c5130654be3a42fb91f38fc80984 /debug/DwarfTypes.mli
parent44845982f412810b0c18067987f2780ef6245fbb (diff)
downloadcompcert-kvx-1e52bb2001964d87086cea00d0cb779e270b99ce.tar.gz
compcert-kvx-1e52bb2001964d87086cea00d0cb779e270b99ce.zip
First step to implemente address ranges for the gnu backend.
In contrast to the dcc, the gcc uses address ranges to express non-contiguous range of addresses. As a first step we set the start and end addresses for the different address ranges for the compilation unit by using the start and end addresses of functions. Bug 17392.
Diffstat (limited to 'debug/DwarfTypes.mli')
-rw-r--r--debug/DwarfTypes.mli14
1 files changed, 8 insertions, 6 deletions
diff --git a/debug/DwarfTypes.mli b/debug/DwarfTypes.mli
index fb1725d9..ff895623 100644
--- a/debug/DwarfTypes.mli
+++ b/debug/DwarfTypes.mli
@@ -87,6 +87,11 @@ type dw_form =
| DW_FORM_ref_udata
| DW_FORM_ref_indirect
+type dw_range =
+ | Pc_pair of reference * reference (* Simple low,high pc *)
+ | Offset of reference * constant (* DWARF 3 version for different range *)
+ | Empty (* Needed for compilation units only containing variables *)
+
(* Types representing the attribute information per tag value *)
type dw_tag_array_type =
@@ -104,8 +109,7 @@ type dw_tag_base_type =
type dw_tag_compile_unit =
{
compile_unit_name: string_const;
- compile_unit_low_pc: constant;
- compile_unit_high_pc: constant;
+ compile_unit_range: dw_range;
compile_unit_dir: string_const;
compile_unit_prod_name: string_const;
}
@@ -146,8 +150,7 @@ type dw_tag_label =
type dw_tag_lexical_block =
{
- lexical_block_high_pc: address option;
- lexical_block_low_pc: address option;
+ lexical_block_range: dw_range;
}
type dw_tag_member =
@@ -181,8 +184,7 @@ type dw_tag_subprogram =
subprogram_name: string_const;
subprogram_prototyped: flag;
subprogram_type: reference option;
- subprogram_high_pc: reference option;
- subprogram_low_pc: reference option;
+ subprogram_range: dw_range;
}
type dw_tag_subrange_type =