]> git.ipfire.org Git - thirdparty/gcc.git/blame - include/dwarf2.def
Sync include/plugin-api.h with binutils.
[thirdparty/gcc.git] / include / dwarf2.def
CommitLineData
c9f46599 1/* -*- c -*-
2 Declarations and definitions of codes relating to the DWARF2 and
3 DWARF3 symbolic debugging information formats.
0215f1b3 4 Copyright (C) 1992-2015 Free Software Foundation, Inc.
c9f46599 5
6 Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
7 Office (AJPO), Florida State University and Silicon Graphics Inc.
8 provided support for this effort -- June 21, 1995.
9
10 Derived from the DWARF 1 implementation written by Ron Guilmette
11 (rfg@netcom.com), November 1990.
12
13 This file is part of GCC.
14
15 GCC is free software; you can redistribute it and/or modify it under
16 the terms of the GNU General Public License as published by the Free
17 Software Foundation; either version 3, or (at your option) any later
18 version.
19
20 GCC is distributed in the hope that it will be useful, but WITHOUT
21 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
22 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
23 License for more details.
24
25 Under Section 7 of GPL version 3, you are granted additional
26 permissions described in the GCC Runtime Library Exception, version
27 3.1, as published by the Free Software Foundation.
28
29 You should have received a copy of the GNU General Public License and
30 a copy of the GCC Runtime Library Exception along with this program;
31 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
32 <http://www.gnu.org/licenses/>. */
33
34/* This file is derived from the DWARF specification (a public document)
35 Revision 2.0.0 (July 27, 1993) developed by the UNIX International
36 Programming Languages Special Interest Group (UI/PLSIG) and distributed
37 by UNIX International. Copies of this specification are available from
38 UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
39
40 This file also now contains definitions from the DWARF 3 specification
41 published Dec 20, 2005, available from: http://dwarf.freestandards.org.
42
43 This file also now contains definitions from the DWARF 4
44 specification, available from: http://dwarfstd.org/ */
45
46/* This file declares various DWARF-related constants using a set of
47 macros which can be redefined by the including file.
48
49 The macros are in sections. Each section corresponds to a single
50 set of DWARF constants and has a corresponding key. The key is
51 used in all the macro names.
52
53 The sections are TAG (for DW_TAG_ constants), FORM (DW_FORM_), AT
54 (DW_AT_), OP (DW_OP_), ATE (DW_ATE_), and CFA (DW_CFA_).
55
56 Using TAG as an example, the following macros may be used for each
57 key:
58
59 DW_FIRST_TAG(name, value) - Introduce the first DW_TAG constant.
60
61 DW_TAG(name, value) - Define a subsequent constant.
62
63 DW_TAG_DUP(name, value) - Define a subsequent constant whose value
64 is a duplicate of some other constant. Not all keys use the _DUP
65 macro form. If more than one name shares a value, then the base
66 (DW_TAG) form will be the preferred name and DW_TAG_DUP will hold
67 any alternate names.
68
69 DW_END_TAG - Invoked at the end of the DW_TAG constants. */
70
71DW_FIRST_TAG (DW_TAG_padding, 0x00)
72DW_TAG (DW_TAG_array_type, 0x01)
73DW_TAG (DW_TAG_class_type, 0x02)
74DW_TAG (DW_TAG_entry_point, 0x03)
75DW_TAG (DW_TAG_enumeration_type, 0x04)
76DW_TAG (DW_TAG_formal_parameter, 0x05)
77DW_TAG (DW_TAG_imported_declaration, 0x08)
78DW_TAG (DW_TAG_label, 0x0a)
79DW_TAG (DW_TAG_lexical_block, 0x0b)
80DW_TAG (DW_TAG_member, 0x0d)
81DW_TAG (DW_TAG_pointer_type, 0x0f)
82DW_TAG (DW_TAG_reference_type, 0x10)
83DW_TAG (DW_TAG_compile_unit, 0x11)
84DW_TAG (DW_TAG_string_type, 0x12)
85DW_TAG (DW_TAG_structure_type, 0x13)
86DW_TAG (DW_TAG_subroutine_type, 0x15)
87DW_TAG (DW_TAG_typedef, 0x16)
88DW_TAG (DW_TAG_union_type, 0x17)
89DW_TAG (DW_TAG_unspecified_parameters, 0x18)
90DW_TAG (DW_TAG_variant, 0x19)
91DW_TAG (DW_TAG_common_block, 0x1a)
92DW_TAG (DW_TAG_common_inclusion, 0x1b)
93DW_TAG (DW_TAG_inheritance, 0x1c)
94DW_TAG (DW_TAG_inlined_subroutine, 0x1d)
95DW_TAG (DW_TAG_module, 0x1e)
96DW_TAG (DW_TAG_ptr_to_member_type, 0x1f)
97DW_TAG (DW_TAG_set_type, 0x20)
98DW_TAG (DW_TAG_subrange_type, 0x21)
99DW_TAG (DW_TAG_with_stmt, 0x22)
100DW_TAG (DW_TAG_access_declaration, 0x23)
101DW_TAG (DW_TAG_base_type, 0x24)
102DW_TAG (DW_TAG_catch_block, 0x25)
103DW_TAG (DW_TAG_const_type, 0x26)
104DW_TAG (DW_TAG_constant, 0x27)
105DW_TAG (DW_TAG_enumerator, 0x28)
106DW_TAG (DW_TAG_file_type, 0x29)
107DW_TAG (DW_TAG_friend, 0x2a)
108DW_TAG (DW_TAG_namelist, 0x2b)
109DW_TAG (DW_TAG_namelist_item, 0x2c)
110DW_TAG (DW_TAG_packed_type, 0x2d)
111DW_TAG (DW_TAG_subprogram, 0x2e)
112DW_TAG (DW_TAG_template_type_param, 0x2f)
113DW_TAG (DW_TAG_template_value_param, 0x30)
114DW_TAG (DW_TAG_thrown_type, 0x31)
115DW_TAG (DW_TAG_try_block, 0x32)
116DW_TAG (DW_TAG_variant_part, 0x33)
117DW_TAG (DW_TAG_variable, 0x34)
118DW_TAG (DW_TAG_volatile_type, 0x35)
119/* DWARF 3. */
120DW_TAG (DW_TAG_dwarf_procedure, 0x36)
121DW_TAG (DW_TAG_restrict_type, 0x37)
122DW_TAG (DW_TAG_interface_type, 0x38)
123DW_TAG (DW_TAG_namespace, 0x39)
124DW_TAG (DW_TAG_imported_module, 0x3a)
125DW_TAG (DW_TAG_unspecified_type, 0x3b)
126DW_TAG (DW_TAG_partial_unit, 0x3c)
127DW_TAG (DW_TAG_imported_unit, 0x3d)
128DW_TAG (DW_TAG_condition, 0x3f)
129DW_TAG (DW_TAG_shared_type, 0x40)
130/* DWARF 4. */
131DW_TAG (DW_TAG_type_unit, 0x41)
132DW_TAG (DW_TAG_rvalue_reference_type, 0x42)
133DW_TAG (DW_TAG_template_alias, 0x43)
9d231822 134/* DWARF 5. */
135DW_TAG (DW_TAG_atomic_type, 0x47)
c9f46599 136
137DW_TAG_DUP (DW_TAG_lo_user, 0x4080)
138DW_TAG_DUP (DW_TAG_hi_user, 0xffff)
139
140/* SGI/MIPS Extensions. */
141DW_TAG (DW_TAG_MIPS_loop, 0x4081)
142
143/* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */
144DW_TAG (DW_TAG_HP_array_descriptor, 0x4090)
145DW_TAG (DW_TAG_HP_Bliss_field, 0x4091)
146DW_TAG (DW_TAG_HP_Bliss_field_set, 0x4092)
147
148/* GNU extensions. */
149DW_TAG (DW_TAG_format_label, 0x4101) /* For FORTRAN 77 and Fortran 90. */
150DW_TAG (DW_TAG_function_template, 0x4102) /* For C++. */
151DW_TAG (DW_TAG_class_template, 0x4103) /* For C++. */
152DW_TAG (DW_TAG_GNU_BINCL, 0x4104)
153DW_TAG (DW_TAG_GNU_EINCL, 0x4105)
154/* Template template parameter.
155 See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */
156DW_TAG (DW_TAG_GNU_template_template_param, 0x4106)
157
158/* Template parameter pack extension, specified at
159 http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates
160 The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
161 are properly part of DWARF 5. */
162DW_TAG (DW_TAG_GNU_template_parameter_pack, 0x4107)
163DW_TAG (DW_TAG_GNU_formal_parameter_pack, 0x4108)
164/* The GNU call site extension, specified at
165 http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open .
166 The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
167 are properly part of DWARF 5. */
168DW_TAG (DW_TAG_GNU_call_site, 0x4109)
169DW_TAG (DW_TAG_GNU_call_site_parameter, 0x410a)
06d1ba50 170/* Extensions for UPC. See: http://dwarfstd.org/doc/DWARF4.pdf. */
c9f46599 171DW_TAG (DW_TAG_upc_shared_type, 0x8765)
172DW_TAG (DW_TAG_upc_strict_type, 0x8766)
173DW_TAG (DW_TAG_upc_relaxed_type, 0x8767)
174/* PGI (STMicroelectronics) extensions. No documentation available. */
175DW_TAG (DW_TAG_PGI_kanji_type, 0xA000)
176DW_TAG (DW_TAG_PGI_interface_block, 0xA020)
177DW_END_TAG
178
179DW_FIRST_FORM (DW_FORM_addr, 0x01)
180DW_FORM (DW_FORM_block2, 0x03)
181DW_FORM (DW_FORM_block4, 0x04)
182DW_FORM (DW_FORM_data2, 0x05)
183DW_FORM (DW_FORM_data4, 0x06)
184DW_FORM (DW_FORM_data8, 0x07)
185DW_FORM (DW_FORM_string, 0x08)
186DW_FORM (DW_FORM_block, 0x09)
187DW_FORM (DW_FORM_block1, 0x0a)
188DW_FORM (DW_FORM_data1, 0x0b)
189DW_FORM (DW_FORM_flag, 0x0c)
190DW_FORM (DW_FORM_sdata, 0x0d)
191DW_FORM (DW_FORM_strp, 0x0e)
192DW_FORM (DW_FORM_udata, 0x0f)
193DW_FORM (DW_FORM_ref_addr, 0x10)
194DW_FORM (DW_FORM_ref1, 0x11)
195DW_FORM (DW_FORM_ref2, 0x12)
196DW_FORM (DW_FORM_ref4, 0x13)
197DW_FORM (DW_FORM_ref8, 0x14)
198DW_FORM (DW_FORM_ref_udata, 0x15)
199DW_FORM (DW_FORM_indirect, 0x16)
200/* DWARF 4. */
201DW_FORM (DW_FORM_sec_offset, 0x17)
202DW_FORM (DW_FORM_exprloc, 0x18)
203DW_FORM (DW_FORM_flag_present, 0x19)
204DW_FORM (DW_FORM_ref_sig8, 0x20)
205/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
c9f46599 206DW_FORM (DW_FORM_GNU_addr_index, 0x1f01)
207DW_FORM (DW_FORM_GNU_str_index, 0x1f02)
d233e0db 208/* Extensions for DWZ multifile.
209 See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open . */
210DW_FORM (DW_FORM_GNU_ref_alt, 0x1f20)
211DW_FORM (DW_FORM_GNU_strp_alt, 0x1f21)
c9f46599 212DW_END_FORM
213
214DW_FIRST_AT (DW_AT_sibling, 0x01)
215DW_AT (DW_AT_location, 0x02)
216DW_AT (DW_AT_name, 0x03)
217DW_AT (DW_AT_ordering, 0x09)
218DW_AT (DW_AT_subscr_data, 0x0a)
219DW_AT (DW_AT_byte_size, 0x0b)
220DW_AT (DW_AT_bit_offset, 0x0c)
221DW_AT (DW_AT_bit_size, 0x0d)
222DW_AT (DW_AT_element_list, 0x0f)
223DW_AT (DW_AT_stmt_list, 0x10)
224DW_AT (DW_AT_low_pc, 0x11)
225DW_AT (DW_AT_high_pc, 0x12)
226DW_AT (DW_AT_language, 0x13)
227DW_AT (DW_AT_member, 0x14)
228DW_AT (DW_AT_discr, 0x15)
229DW_AT (DW_AT_discr_value, 0x16)
230DW_AT (DW_AT_visibility, 0x17)
231DW_AT (DW_AT_import, 0x18)
232DW_AT (DW_AT_string_length, 0x19)
233DW_AT (DW_AT_common_reference, 0x1a)
234DW_AT (DW_AT_comp_dir, 0x1b)
235DW_AT (DW_AT_const_value, 0x1c)
236DW_AT (DW_AT_containing_type, 0x1d)
237DW_AT (DW_AT_default_value, 0x1e)
238DW_AT (DW_AT_inline, 0x20)
239DW_AT (DW_AT_is_optional, 0x21)
240DW_AT (DW_AT_lower_bound, 0x22)
241DW_AT (DW_AT_producer, 0x25)
242DW_AT (DW_AT_prototyped, 0x27)
243DW_AT (DW_AT_return_addr, 0x2a)
244DW_AT (DW_AT_start_scope, 0x2c)
245DW_AT (DW_AT_bit_stride, 0x2e)
246DW_AT (DW_AT_upper_bound, 0x2f)
247DW_AT (DW_AT_abstract_origin, 0x31)
248DW_AT (DW_AT_accessibility, 0x32)
249DW_AT (DW_AT_address_class, 0x33)
250DW_AT (DW_AT_artificial, 0x34)
251DW_AT (DW_AT_base_types, 0x35)
252DW_AT (DW_AT_calling_convention, 0x36)
253DW_AT (DW_AT_count, 0x37)
254DW_AT (DW_AT_data_member_location, 0x38)
255DW_AT (DW_AT_decl_column, 0x39)
256DW_AT (DW_AT_decl_file, 0x3a)
257DW_AT (DW_AT_decl_line, 0x3b)
258DW_AT (DW_AT_declaration, 0x3c)
259DW_AT (DW_AT_discr_list, 0x3d)
260DW_AT (DW_AT_encoding, 0x3e)
261DW_AT (DW_AT_external, 0x3f)
262DW_AT (DW_AT_frame_base, 0x40)
263DW_AT (DW_AT_friend, 0x41)
264DW_AT (DW_AT_identifier_case, 0x42)
265DW_AT (DW_AT_macro_info, 0x43)
266DW_AT (DW_AT_namelist_items, 0x44)
267DW_AT (DW_AT_priority, 0x45)
268DW_AT (DW_AT_segment, 0x46)
269DW_AT (DW_AT_specification, 0x47)
270DW_AT (DW_AT_static_link, 0x48)
271DW_AT (DW_AT_type, 0x49)
272DW_AT (DW_AT_use_location, 0x4a)
273DW_AT (DW_AT_variable_parameter, 0x4b)
274DW_AT (DW_AT_virtuality, 0x4c)
275DW_AT (DW_AT_vtable_elem_location, 0x4d)
276/* DWARF 3 values. */
277DW_AT (DW_AT_allocated, 0x4e)
278DW_AT (DW_AT_associated, 0x4f)
279DW_AT (DW_AT_data_location, 0x50)
280DW_AT (DW_AT_byte_stride, 0x51)
281DW_AT (DW_AT_entry_pc, 0x52)
282DW_AT (DW_AT_use_UTF8, 0x53)
283DW_AT (DW_AT_extension, 0x54)
284DW_AT (DW_AT_ranges, 0x55)
285DW_AT (DW_AT_trampoline, 0x56)
286DW_AT (DW_AT_call_column, 0x57)
287DW_AT (DW_AT_call_file, 0x58)
288DW_AT (DW_AT_call_line, 0x59)
289DW_AT (DW_AT_description, 0x5a)
290DW_AT (DW_AT_binary_scale, 0x5b)
291DW_AT (DW_AT_decimal_scale, 0x5c)
292DW_AT (DW_AT_small, 0x5d)
293DW_AT (DW_AT_decimal_sign, 0x5e)
294DW_AT (DW_AT_digit_count, 0x5f)
295DW_AT (DW_AT_picture_string, 0x60)
296DW_AT (DW_AT_mutable, 0x61)
297DW_AT (DW_AT_threads_scaled, 0x62)
298DW_AT (DW_AT_explicit, 0x63)
299DW_AT (DW_AT_object_pointer, 0x64)
300DW_AT (DW_AT_endianity, 0x65)
301DW_AT (DW_AT_elemental, 0x66)
302DW_AT (DW_AT_pure, 0x67)
303DW_AT (DW_AT_recursive, 0x68)
304/* DWARF 4. */
305DW_AT (DW_AT_signature, 0x69)
306DW_AT (DW_AT_main_subprogram, 0x6a)
307DW_AT (DW_AT_data_bit_offset, 0x6b)
308DW_AT (DW_AT_const_expr, 0x6c)
309DW_AT (DW_AT_enum_class, 0x6d)
310DW_AT (DW_AT_linkage_name, 0x6e)
aa643a01 311/* DWARF 5. */
312DW_AT (DW_AT_noreturn, 0x87)
c9f46599 313
314DW_AT_DUP (DW_AT_lo_user, 0x2000) /* Implementation-defined range start. */
315DW_AT_DUP (DW_AT_hi_user, 0x3fff) /* Implementation-defined range end. */
316
317/* SGI/MIPS extensions. */
318DW_AT (DW_AT_MIPS_fde, 0x2001)
319DW_AT (DW_AT_MIPS_loop_begin, 0x2002)
320DW_AT (DW_AT_MIPS_tail_loop_begin, 0x2003)
321DW_AT (DW_AT_MIPS_epilog_begin, 0x2004)
322DW_AT (DW_AT_MIPS_loop_unroll_factor, 0x2005)
323DW_AT (DW_AT_MIPS_software_pipeline_depth, 0x2006)
324DW_AT (DW_AT_MIPS_linkage_name, 0x2007)
325DW_AT (DW_AT_MIPS_stride, 0x2008)
326DW_AT (DW_AT_MIPS_abstract_name, 0x2009)
327DW_AT (DW_AT_MIPS_clone_origin, 0x200a)
328DW_AT (DW_AT_MIPS_has_inlines, 0x200b)
329/* HP extensions. */
330DW_AT (DW_AT_HP_block_index, 0x2000)
331DW_AT_DUP (DW_AT_HP_unmodifiable, 0x2001) /* Same as DW_AT_MIPS_fde. */
332DW_AT_DUP (DW_AT_HP_prologue, 0x2005) /* Same as DW_AT_MIPS_loop_unroll. */
333DW_AT_DUP (DW_AT_HP_epilogue, 0x2008) /* Same as DW_AT_MIPS_stride. */
334DW_AT (DW_AT_HP_actuals_stmt_list, 0x2010)
335DW_AT (DW_AT_HP_proc_per_section, 0x2011)
336DW_AT (DW_AT_HP_raw_data_ptr, 0x2012)
337DW_AT (DW_AT_HP_pass_by_reference, 0x2013)
338DW_AT (DW_AT_HP_opt_level, 0x2014)
339DW_AT (DW_AT_HP_prof_version_id, 0x2015)
340DW_AT (DW_AT_HP_opt_flags, 0x2016)
341DW_AT (DW_AT_HP_cold_region_low_pc, 0x2017)
342DW_AT (DW_AT_HP_cold_region_high_pc, 0x2018)
343DW_AT (DW_AT_HP_all_variables_modifiable, 0x2019)
344DW_AT (DW_AT_HP_linkage_name, 0x201a)
345DW_AT (DW_AT_HP_prof_flags, 0x201b) /* In comp unit of procs_info for -g. */
346DW_AT (DW_AT_HP_unit_name, 0x201f)
347DW_AT (DW_AT_HP_unit_size, 0x2020)
348DW_AT (DW_AT_HP_widened_byte_size, 0x2021)
349DW_AT (DW_AT_HP_definition_points, 0x2022)
350DW_AT (DW_AT_HP_default_location, 0x2023)
351DW_AT (DW_AT_HP_is_result_param, 0x2029)
352
353/* GNU extensions. */
354DW_AT (DW_AT_sf_names, 0x2101)
355DW_AT (DW_AT_src_info, 0x2102)
356DW_AT (DW_AT_mac_info, 0x2103)
357DW_AT (DW_AT_src_coords, 0x2104)
358DW_AT (DW_AT_body_begin, 0x2105)
359DW_AT (DW_AT_body_end, 0x2106)
360DW_AT (DW_AT_GNU_vector, 0x2107)
361/* Thread-safety annotations.
362 See http://gcc.gnu.org/wiki/ThreadSafetyAnnotation . */
363DW_AT (DW_AT_GNU_guarded_by, 0x2108)
364DW_AT (DW_AT_GNU_pt_guarded_by, 0x2109)
365DW_AT (DW_AT_GNU_guarded, 0x210a)
366DW_AT (DW_AT_GNU_pt_guarded, 0x210b)
367DW_AT (DW_AT_GNU_locks_excluded, 0x210c)
368DW_AT (DW_AT_GNU_exclusive_locks_required, 0x210d)
369DW_AT (DW_AT_GNU_shared_locks_required, 0x210e)
370/* One-definition rule violation detection.
371 See http://gcc.gnu.org/wiki/DwarfSeparateTypeInfo . */
372DW_AT (DW_AT_GNU_odr_signature, 0x210f)
373/* Template template argument name.
374 See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */
375DW_AT (DW_AT_GNU_template_name, 0x2110)
376/* The GNU call site extension.
377 See http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open . */
378DW_AT (DW_AT_GNU_call_site_value, 0x2111)
379DW_AT (DW_AT_GNU_call_site_data_value, 0x2112)
380DW_AT (DW_AT_GNU_call_site_target, 0x2113)
381DW_AT (DW_AT_GNU_call_site_target_clobbered, 0x2114)
382DW_AT (DW_AT_GNU_tail_call, 0x2115)
383DW_AT (DW_AT_GNU_all_tail_call_sites, 0x2116)
384DW_AT (DW_AT_GNU_all_call_sites, 0x2117)
385DW_AT (DW_AT_GNU_all_source_call_sites, 0x2118)
386/* Section offset into .debug_macro section. */
387DW_AT (DW_AT_GNU_macros, 0x2119)
77cab475 388/* Attribute for C++ deleted special member functions (= delete;). */
389DW_AT (DW_AT_GNU_deleted, 0x211a)
c9f46599 390/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
391DW_AT (DW_AT_GNU_dwo_name, 0x2130)
392DW_AT (DW_AT_GNU_dwo_id, 0x2131)
9618d32d 393DW_AT (DW_AT_GNU_ranges_base, 0x2132)
c9f46599 394DW_AT (DW_AT_GNU_addr_base, 0x2133)
395DW_AT (DW_AT_GNU_pubnames, 0x2134)
396DW_AT (DW_AT_GNU_pubtypes, 0x2135)
47e5a776 397/* Attribute for discriminator.
398 See http://gcc.gnu.org/wiki/Discriminator */
399DW_AT (DW_AT_GNU_discriminator, 0x2136)
c9f46599 400/* VMS extensions. */
401DW_AT (DW_AT_VMS_rtnbeg_pd_address, 0x2201)
402/* GNAT extensions. */
403/* GNAT descriptive type.
404 See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type . */
405DW_AT (DW_AT_use_GNAT_descriptive_type, 0x2301)
406DW_AT (DW_AT_GNAT_descriptive_type, 0x2302)
011db277 407/* Rational constant extension.
408 See https://gcc.gnu.org/wiki/DW_AT_GNU_numerator_denominator . */
409DW_TAG (DW_AT_GNU_numerator, 0x2303)
410DW_TAG (DW_AT_GNU_denominator, 0x2304)
2f72d95e 411/* Biased integer extension.
412 See https://gcc.gnu.org/wiki/DW_AT_GNU_bias . */
413DW_TAG (DW_AT_GNU_bias, 0x2305)
c9f46599 414/* UPC extension. */
415DW_AT (DW_AT_upc_threads_scaled, 0x3210)
416/* PGI (STMicroelectronics) extensions. */
417DW_AT (DW_AT_PGI_lbase, 0x3a00)
418DW_AT (DW_AT_PGI_soffset, 0x3a01)
419DW_AT (DW_AT_PGI_lstride, 0x3a02)
69a2f316 420/* Apple extensions. */
421DW_AT (DW_AT_APPLE_optimized, 0x3fe1)
422DW_AT (DW_AT_APPLE_flags, 0x3fe2)
423DW_AT (DW_AT_APPLE_isa, 0x3fe3)
424DW_AT (DW_AT_APPLE_block, 0x3fe4)
425DW_AT (DW_AT_APPLE_major_runtime_vers, 0x3fe5)
426DW_AT (DW_AT_APPLE_runtime_class, 0x3fe6)
427DW_AT (DW_AT_APPLE_omit_frame_ptr, 0x3fe7)
428DW_AT (DW_AT_APPLE_property_name, 0x3fe8)
429DW_AT (DW_AT_APPLE_property_getter, 0x3fe9)
430DW_AT (DW_AT_APPLE_property_setter, 0x3fea)
431DW_AT (DW_AT_APPLE_property_attribute, 0x3feb)
432DW_AT (DW_AT_APPLE_objc_complete_type, 0x3fec)
433DW_AT (DW_AT_APPLE_property, 0x3fed)
c9f46599 434DW_END_AT
435
436DW_FIRST_OP (DW_OP_addr, 0x03)
437DW_OP (DW_OP_deref, 0x06)
438DW_OP (DW_OP_const1u, 0x08)
439DW_OP (DW_OP_const1s, 0x09)
440DW_OP (DW_OP_const2u, 0x0a)
441DW_OP (DW_OP_const2s, 0x0b)
442DW_OP (DW_OP_const4u, 0x0c)
443DW_OP (DW_OP_const4s, 0x0d)
444DW_OP (DW_OP_const8u, 0x0e)
445DW_OP (DW_OP_const8s, 0x0f)
446DW_OP (DW_OP_constu, 0x10)
447DW_OP (DW_OP_consts, 0x11)
448DW_OP (DW_OP_dup, 0x12)
449DW_OP (DW_OP_drop, 0x13)
450DW_OP (DW_OP_over, 0x14)
451DW_OP (DW_OP_pick, 0x15)
452DW_OP (DW_OP_swap, 0x16)
453DW_OP (DW_OP_rot, 0x17)
454DW_OP (DW_OP_xderef, 0x18)
455DW_OP (DW_OP_abs, 0x19)
456DW_OP (DW_OP_and, 0x1a)
457DW_OP (DW_OP_div, 0x1b)
458DW_OP (DW_OP_minus, 0x1c)
459DW_OP (DW_OP_mod, 0x1d)
460DW_OP (DW_OP_mul, 0x1e)
461DW_OP (DW_OP_neg, 0x1f)
462DW_OP (DW_OP_not, 0x20)
463DW_OP (DW_OP_or, 0x21)
464DW_OP (DW_OP_plus, 0x22)
465DW_OP (DW_OP_plus_uconst, 0x23)
466DW_OP (DW_OP_shl, 0x24)
467DW_OP (DW_OP_shr, 0x25)
468DW_OP (DW_OP_shra, 0x26)
469DW_OP (DW_OP_xor, 0x27)
470DW_OP (DW_OP_bra, 0x28)
471DW_OP (DW_OP_eq, 0x29)
472DW_OP (DW_OP_ge, 0x2a)
473DW_OP (DW_OP_gt, 0x2b)
474DW_OP (DW_OP_le, 0x2c)
475DW_OP (DW_OP_lt, 0x2d)
476DW_OP (DW_OP_ne, 0x2e)
477DW_OP (DW_OP_skip, 0x2f)
478DW_OP (DW_OP_lit0, 0x30)
479DW_OP (DW_OP_lit1, 0x31)
480DW_OP (DW_OP_lit2, 0x32)
481DW_OP (DW_OP_lit3, 0x33)
482DW_OP (DW_OP_lit4, 0x34)
483DW_OP (DW_OP_lit5, 0x35)
484DW_OP (DW_OP_lit6, 0x36)
485DW_OP (DW_OP_lit7, 0x37)
486DW_OP (DW_OP_lit8, 0x38)
487DW_OP (DW_OP_lit9, 0x39)
488DW_OP (DW_OP_lit10, 0x3a)
489DW_OP (DW_OP_lit11, 0x3b)
490DW_OP (DW_OP_lit12, 0x3c)
491DW_OP (DW_OP_lit13, 0x3d)
492DW_OP (DW_OP_lit14, 0x3e)
493DW_OP (DW_OP_lit15, 0x3f)
494DW_OP (DW_OP_lit16, 0x40)
495DW_OP (DW_OP_lit17, 0x41)
496DW_OP (DW_OP_lit18, 0x42)
497DW_OP (DW_OP_lit19, 0x43)
498DW_OP (DW_OP_lit20, 0x44)
499DW_OP (DW_OP_lit21, 0x45)
500DW_OP (DW_OP_lit22, 0x46)
501DW_OP (DW_OP_lit23, 0x47)
502DW_OP (DW_OP_lit24, 0x48)
503DW_OP (DW_OP_lit25, 0x49)
504DW_OP (DW_OP_lit26, 0x4a)
505DW_OP (DW_OP_lit27, 0x4b)
506DW_OP (DW_OP_lit28, 0x4c)
507DW_OP (DW_OP_lit29, 0x4d)
508DW_OP (DW_OP_lit30, 0x4e)
509DW_OP (DW_OP_lit31, 0x4f)
510DW_OP (DW_OP_reg0, 0x50)
511DW_OP (DW_OP_reg1, 0x51)
512DW_OP (DW_OP_reg2, 0x52)
513DW_OP (DW_OP_reg3, 0x53)
514DW_OP (DW_OP_reg4, 0x54)
515DW_OP (DW_OP_reg5, 0x55)
516DW_OP (DW_OP_reg6, 0x56)
517DW_OP (DW_OP_reg7, 0x57)
518DW_OP (DW_OP_reg8, 0x58)
519DW_OP (DW_OP_reg9, 0x59)
520DW_OP (DW_OP_reg10, 0x5a)
521DW_OP (DW_OP_reg11, 0x5b)
522DW_OP (DW_OP_reg12, 0x5c)
523DW_OP (DW_OP_reg13, 0x5d)
524DW_OP (DW_OP_reg14, 0x5e)
525DW_OP (DW_OP_reg15, 0x5f)
526DW_OP (DW_OP_reg16, 0x60)
527DW_OP (DW_OP_reg17, 0x61)
528DW_OP (DW_OP_reg18, 0x62)
529DW_OP (DW_OP_reg19, 0x63)
530DW_OP (DW_OP_reg20, 0x64)
531DW_OP (DW_OP_reg21, 0x65)
532DW_OP (DW_OP_reg22, 0x66)
533DW_OP (DW_OP_reg23, 0x67)
534DW_OP (DW_OP_reg24, 0x68)
535DW_OP (DW_OP_reg25, 0x69)
536DW_OP (DW_OP_reg26, 0x6a)
537DW_OP (DW_OP_reg27, 0x6b)
538DW_OP (DW_OP_reg28, 0x6c)
539DW_OP (DW_OP_reg29, 0x6d)
540DW_OP (DW_OP_reg30, 0x6e)
541DW_OP (DW_OP_reg31, 0x6f)
542DW_OP (DW_OP_breg0, 0x70)
543DW_OP (DW_OP_breg1, 0x71)
544DW_OP (DW_OP_breg2, 0x72)
545DW_OP (DW_OP_breg3, 0x73)
546DW_OP (DW_OP_breg4, 0x74)
547DW_OP (DW_OP_breg5, 0x75)
548DW_OP (DW_OP_breg6, 0x76)
549DW_OP (DW_OP_breg7, 0x77)
550DW_OP (DW_OP_breg8, 0x78)
551DW_OP (DW_OP_breg9, 0x79)
552DW_OP (DW_OP_breg10, 0x7a)
553DW_OP (DW_OP_breg11, 0x7b)
554DW_OP (DW_OP_breg12, 0x7c)
555DW_OP (DW_OP_breg13, 0x7d)
556DW_OP (DW_OP_breg14, 0x7e)
557DW_OP (DW_OP_breg15, 0x7f)
558DW_OP (DW_OP_breg16, 0x80)
559DW_OP (DW_OP_breg17, 0x81)
560DW_OP (DW_OP_breg18, 0x82)
561DW_OP (DW_OP_breg19, 0x83)
562DW_OP (DW_OP_breg20, 0x84)
563DW_OP (DW_OP_breg21, 0x85)
564DW_OP (DW_OP_breg22, 0x86)
565DW_OP (DW_OP_breg23, 0x87)
566DW_OP (DW_OP_breg24, 0x88)
567DW_OP (DW_OP_breg25, 0x89)
568DW_OP (DW_OP_breg26, 0x8a)
569DW_OP (DW_OP_breg27, 0x8b)
570DW_OP (DW_OP_breg28, 0x8c)
571DW_OP (DW_OP_breg29, 0x8d)
572DW_OP (DW_OP_breg30, 0x8e)
573DW_OP (DW_OP_breg31, 0x8f)
574DW_OP (DW_OP_regx, 0x90)
575DW_OP (DW_OP_fbreg, 0x91)
576DW_OP (DW_OP_bregx, 0x92)
577DW_OP (DW_OP_piece, 0x93)
578DW_OP (DW_OP_deref_size, 0x94)
579DW_OP (DW_OP_xderef_size, 0x95)
580DW_OP (DW_OP_nop, 0x96)
581/* DWARF 3 extensions. */
582DW_OP (DW_OP_push_object_address, 0x97)
583DW_OP (DW_OP_call2, 0x98)
584DW_OP (DW_OP_call4, 0x99)
585DW_OP (DW_OP_call_ref, 0x9a)
586DW_OP (DW_OP_form_tls_address, 0x9b)
587DW_OP (DW_OP_call_frame_cfa, 0x9c)
588DW_OP (DW_OP_bit_piece, 0x9d)
589
590/* DWARF 4 extensions. */
591DW_OP (DW_OP_implicit_value, 0x9e)
592DW_OP (DW_OP_stack_value, 0x9f)
593
594DW_OP_DUP (DW_OP_lo_user, 0xe0) /* Implementation-defined range start. */
595DW_OP_DUP (DW_OP_hi_user, 0xff) /* Implementation-defined range end. */
596
597/* GNU extensions. */
598DW_OP (DW_OP_GNU_push_tls_address, 0xe0)
599/* The following is for marking variables that are uninitialized. */
600DW_OP (DW_OP_GNU_uninit, 0xf0)
601DW_OP (DW_OP_GNU_encoded_addr, 0xf1)
602/* The GNU implicit pointer extension.
603 See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open . */
604DW_OP (DW_OP_GNU_implicit_pointer, 0xf2)
605/* The GNU entry value extension.
606 See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open . */
607DW_OP (DW_OP_GNU_entry_value, 0xf3)
608/* The GNU typed stack extension.
609 See http://www.dwarfstd.org/doc/040408.1.html . */
610DW_OP (DW_OP_GNU_const_type, 0xf4)
611DW_OP (DW_OP_GNU_regval_type, 0xf5)
612DW_OP (DW_OP_GNU_deref_type, 0xf6)
613DW_OP (DW_OP_GNU_convert, 0xf7)
614DW_OP (DW_OP_GNU_reinterpret, 0xf9)
615/* The GNU parameter ref extension. */
616DW_OP (DW_OP_GNU_parameter_ref, 0xfa)
0131450a 617/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
ee9571b9 618DW_OP (DW_OP_GNU_addr_index, 0xfb)
3c4aeb35 619DW_OP (DW_OP_GNU_const_index, 0xfc)
c9f46599 620/* HP extensions. */
621DW_OP_DUP (DW_OP_HP_unknown, 0xe0) /* Ouch, the same as GNU_push_tls_address. */
622DW_OP (DW_OP_HP_is_value, 0xe1)
623DW_OP (DW_OP_HP_fltconst4, 0xe2)
624DW_OP (DW_OP_HP_fltconst8, 0xe3)
625DW_OP (DW_OP_HP_mod_range, 0xe4)
626DW_OP (DW_OP_HP_unmod_range, 0xe5)
627DW_OP (DW_OP_HP_tls, 0xe6)
628/* PGI (STMicroelectronics) extensions. */
629DW_OP (DW_OP_PGI_omp_thread_num, 0xf8)
630DW_END_OP
631
632DW_FIRST_ATE (DW_ATE_void, 0x0)
633DW_ATE (DW_ATE_address, 0x1)
634DW_ATE (DW_ATE_boolean, 0x2)
635DW_ATE (DW_ATE_complex_float, 0x3)
636DW_ATE (DW_ATE_float, 0x4)
637DW_ATE (DW_ATE_signed, 0x5)
638DW_ATE (DW_ATE_signed_char, 0x6)
639DW_ATE (DW_ATE_unsigned, 0x7)
640DW_ATE (DW_ATE_unsigned_char, 0x8)
641/* DWARF 3. */
642DW_ATE (DW_ATE_imaginary_float, 0x9)
643DW_ATE (DW_ATE_packed_decimal, 0xa)
644DW_ATE (DW_ATE_numeric_string, 0xb)
645DW_ATE (DW_ATE_edited, 0xc)
646DW_ATE (DW_ATE_signed_fixed, 0xd)
647DW_ATE (DW_ATE_unsigned_fixed, 0xe)
648DW_ATE (DW_ATE_decimal_float, 0xf)
649/* DWARF 4. */
650DW_ATE (DW_ATE_UTF, 0x10)
651
652DW_ATE_DUP (DW_ATE_lo_user, 0x80)
653DW_ATE_DUP (DW_ATE_hi_user, 0xff)
654
655/* HP extensions. */
656DW_ATE (DW_ATE_HP_float80, 0x80) /* Floating-point (80 bit). */
657DW_ATE (DW_ATE_HP_complex_float80, 0x81) /* Complex floating-point (80 bit). */
658DW_ATE (DW_ATE_HP_float128, 0x82) /* Floating-point (128 bit). */
659DW_ATE (DW_ATE_HP_complex_float128, 0x83) /* Complex fp (128 bit). */
660DW_ATE (DW_ATE_HP_floathpintel, 0x84) /* Floating-point (82 bit IA64). */
661DW_ATE (DW_ATE_HP_imaginary_float80, 0x85)
662DW_ATE (DW_ATE_HP_imaginary_float128, 0x86)
663DW_ATE (DW_ATE_HP_VAX_float, 0x88) /* F or G floating. */
664DW_ATE (DW_ATE_HP_VAX_float_d, 0x89) /* D floating. */
665DW_ATE (DW_ATE_HP_packed_decimal, 0x8a) /* Cobol. */
666DW_ATE (DW_ATE_HP_zoned_decimal, 0x8b) /* Cobol. */
667DW_ATE (DW_ATE_HP_edited, 0x8c) /* Cobol. */
668DW_ATE (DW_ATE_HP_signed_fixed, 0x8d) /* Cobol. */
669DW_ATE (DW_ATE_HP_unsigned_fixed, 0x8e) /* Cobol. */
670DW_ATE (DW_ATE_HP_VAX_complex_float, 0x8f) /* F or G floating complex. */
671DW_ATE (DW_ATE_HP_VAX_complex_float_d, 0x90) /* D floating complex. */
672
673DW_END_ATE
674
675DW_FIRST_CFA (DW_CFA_advance_loc, 0x40)
676DW_CFA (DW_CFA_offset, 0x80)
677DW_CFA (DW_CFA_restore, 0xc0)
678DW_CFA (DW_CFA_nop, 0x00)
679DW_CFA (DW_CFA_set_loc, 0x01)
680DW_CFA (DW_CFA_advance_loc1, 0x02)
681DW_CFA (DW_CFA_advance_loc2, 0x03)
682DW_CFA (DW_CFA_advance_loc4, 0x04)
683DW_CFA (DW_CFA_offset_extended, 0x05)
684DW_CFA (DW_CFA_restore_extended, 0x06)
685DW_CFA (DW_CFA_undefined, 0x07)
686DW_CFA (DW_CFA_same_value, 0x08)
687DW_CFA (DW_CFA_register, 0x09)
688DW_CFA (DW_CFA_remember_state, 0x0a)
689DW_CFA (DW_CFA_restore_state, 0x0b)
690DW_CFA (DW_CFA_def_cfa, 0x0c)
691DW_CFA (DW_CFA_def_cfa_register, 0x0d)
692DW_CFA (DW_CFA_def_cfa_offset, 0x0e)
693/* DWARF 3. */
694DW_CFA (DW_CFA_def_cfa_expression, 0x0f)
695DW_CFA (DW_CFA_expression, 0x10)
696DW_CFA (DW_CFA_offset_extended_sf, 0x11)
697DW_CFA (DW_CFA_def_cfa_sf, 0x12)
698DW_CFA (DW_CFA_def_cfa_offset_sf, 0x13)
699DW_CFA (DW_CFA_val_offset, 0x14)
700DW_CFA (DW_CFA_val_offset_sf, 0x15)
701DW_CFA (DW_CFA_val_expression, 0x16)
702
703DW_CFA (DW_CFA_lo_user, 0x1c)
704DW_CFA (DW_CFA_hi_user, 0x3f)
705
706/* SGI/MIPS specific. */
707DW_CFA (DW_CFA_MIPS_advance_loc8, 0x1d)
708/* GNU extensions. */
709DW_CFA (DW_CFA_GNU_window_save, 0x2d)
710DW_CFA (DW_CFA_GNU_args_size, 0x2e)
711DW_CFA (DW_CFA_GNU_negative_offset_extended, 0x2f)
712
713DW_END_CFA