blob: afa29e1316f98ac659f409cbf65fedc8745ecd19 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
(* *********************************************************************)
(* *)
(* The Compcert verified compiler *)
(* *)
(* Bernhard Schommer, AbsInt Angewandte Informatik GmbH *)
(* *)
(* AbsInt Angewandte Informatik GmbH. All rights reserved. This file *)
(* is distributed under the terms of the INRIA Non-Commercial *)
(* License Agreement. *)
(* *)
(* *********************************************************************)
(* Types used for writing dwarf debug information *)
(* Basic types for the value of attributes *)
type constant = int
type flag = bool
type reference = int
type encoding =
| DW_ATE_address
| DW_ATE_boolean
| DW_ATE_complex_float
| DW_ATE_float
| DW_ATE_signed
| DW_ATE_signed_char
| DW_ATE_unsigned
| DW_ATE_unsigned_char
type identifier_case =
| DW_ID_case_sensitive
| DW_ID_up_case
| DW_ID_down_case
| DW_ID_case_insensitive
type address = int
type language =
| DW_LANG_C
| DW_LANG_C89
type block = string (* Used as bitvector *)
type const_value =
| String of string
| Const of constant
| Block of block
(* Types representing the attribute information per tag value *)
type dw_tag_array_type =
{
dw_at_byte_size: constant option;
dw_at_declaration: flag option;
dw_at_name: string option;
dw_at_sibling: reference option;
dw_at_start_scope: constant option;
dw_at_stride_size: constant option;
dw_at_type: reference option;
}
type dw_tag_base_type =
{
dw_at_bit_offset: constant option;
dw_at_bit_size: constant option;
dw_at_byte_size: constant option;
dw_at_encoding: encoding option;
dw_at_name: string option;
dw_at_sibling: reference option;
}
type dw_tag_compile_unit =
{
dw_at_base_types: reference option;
dw_at_comp_dir: string option;
dw_at_identifier_case: identifier_case option;
dw_at_high_pc: address option;
dw_at_language: language option;
dw_at_low_pc: address option;
dw_at_macro_info: constant option;
dw_at_name: string option;
dw_at_producer: string option;
dw_at_sibling: reference option;
dw_at_stmt_list: constant option;
}
type dw_tag_const_type =
{
dw_at_sibling: reference option;
dw_at_type: reference option;
}
type dw_tag_constant =
{
dw_at_const_value: constant option;
dw_at_declaration: flag option;
dw_at_external: flag option;
dw_at_name: string option;
dw_at_sibling: reference option;
dw_at_start_scope: constant option;
dw_at_type: reference option;
}
type dw_tag_enumeration_type =
{
dw_at_byte_size: constant option;
dw_at_declaration: flag option;
dw_at_name: string option;
dw_at_sibling: reference option;
dw_at_start_scope: constant option;
}
type dw_tag_enumerator =
{
dw_at_const_value: constant option;
dw_at_name: string option;
dw_at_sibling: reference option;
}
|