Merge from vendor branch LIBARCHIVE:
[dragonfly.git] / contrib / gcc-3.4 / gcc / dwarf2.h
1 /* Declarations and definitions of codes relating to the DWARF2 symbolic
2    debugging information format.
3    Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002
4    Free Software Foundation, Inc.
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 2, or (at your option) any later
18 version.
19
20 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
21 WARRANTY; without even the implied warranty of MERCHANTABILITY or
22 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
23 for more details.
24
25 You should have received a copy of the GNU General Public License
26 along with GCC; see the file COPYING.  If not, write to the Free
27 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
28 02111-1307, USA.  */
29
30 /* This file is derived from the DWARF specification (a public document)
31    Revision 2.0.0 (July 27, 1993) developed by the UNIX International
32    Programming Languages Special Interest Group (UI/PLSIG) and distributed
33    by UNIX International.  Copies of this specification are available from
34    UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
35
36    This file also now contains definitions from the DWARF 3 specification.  */
37
38 /* This file is shared between GCC and GDB, and should not contain
39    prototypes.  */
40
41 #ifndef GCC_DWARF2_H
42 #define GCC_DWARF2_H
43
44 /* Tag names and codes.  */
45 enum dwarf_tag
46   {
47     DW_TAG_padding = 0x00,
48     DW_TAG_array_type = 0x01,
49     DW_TAG_class_type = 0x02,
50     DW_TAG_entry_point = 0x03,
51     DW_TAG_enumeration_type = 0x04,
52     DW_TAG_formal_parameter = 0x05,
53     DW_TAG_imported_declaration = 0x08,
54     DW_TAG_label = 0x0a,
55     DW_TAG_lexical_block = 0x0b,
56     DW_TAG_member = 0x0d,
57     DW_TAG_pointer_type = 0x0f,
58     DW_TAG_reference_type = 0x10,
59     DW_TAG_compile_unit = 0x11,
60     DW_TAG_string_type = 0x12,
61     DW_TAG_structure_type = 0x13,
62     DW_TAG_subroutine_type = 0x15,
63     DW_TAG_typedef = 0x16,
64     DW_TAG_union_type = 0x17,
65     DW_TAG_unspecified_parameters = 0x18,
66     DW_TAG_variant = 0x19,
67     DW_TAG_common_block = 0x1a,
68     DW_TAG_common_inclusion = 0x1b,
69     DW_TAG_inheritance = 0x1c,
70     DW_TAG_inlined_subroutine = 0x1d,
71     DW_TAG_module = 0x1e,
72     DW_TAG_ptr_to_member_type = 0x1f,
73     DW_TAG_set_type = 0x20,
74     DW_TAG_subrange_type = 0x21,
75     DW_TAG_with_stmt = 0x22,
76     DW_TAG_access_declaration = 0x23,
77     DW_TAG_base_type = 0x24,
78     DW_TAG_catch_block = 0x25,
79     DW_TAG_const_type = 0x26,
80     DW_TAG_constant = 0x27,
81     DW_TAG_enumerator = 0x28,
82     DW_TAG_file_type = 0x29,
83     DW_TAG_friend = 0x2a,
84     DW_TAG_namelist = 0x2b,
85     DW_TAG_namelist_item = 0x2c,
86     DW_TAG_packed_type = 0x2d,
87     DW_TAG_subprogram = 0x2e,
88     DW_TAG_template_type_param = 0x2f,
89     DW_TAG_template_value_param = 0x30,
90     DW_TAG_thrown_type = 0x31,
91     DW_TAG_try_block = 0x32,
92     DW_TAG_variant_part = 0x33,
93     DW_TAG_variable = 0x34,
94     DW_TAG_volatile_type = 0x35,
95     /* DWARF 3.  */
96     DW_TAG_dwarf_procedure = 0x36,
97     DW_TAG_restrict_type = 0x37,
98     DW_TAG_interface_type = 0x38,
99     DW_TAG_namespace = 0x39,
100     DW_TAG_imported_module = 0x3a,
101     DW_TAG_unspecified_type = 0x3b,
102     DW_TAG_partial_unit = 0x3c,
103     DW_TAG_imported_unit = 0x3d,
104     /* SGI/MIPS Extensions.  */
105     DW_TAG_MIPS_loop = 0x4081,
106     /* GNU extensions.  */
107     DW_TAG_format_label = 0x4101,       /* For FORTRAN 77 and Fortran 90.  */
108     DW_TAG_function_template = 0x4102,  /* For C++.  */
109     DW_TAG_class_template = 0x4103,     /* For C++.  */
110     DW_TAG_GNU_BINCL = 0x4104,
111     DW_TAG_GNU_EINCL = 0x4105
112   };
113
114 #define DW_TAG_lo_user  0x4080
115 #define DW_TAG_hi_user  0xffff
116
117 /* Flag that tells whether entry has a child or not.  */
118 #define DW_children_no   0
119 #define DW_children_yes  1
120
121 /* Form names and codes.  */
122 enum dwarf_form
123   {
124     DW_FORM_addr = 0x01,
125     DW_FORM_block2 = 0x03,
126     DW_FORM_block4 = 0x04,
127     DW_FORM_data2 = 0x05,
128     DW_FORM_data4 = 0x06,
129     DW_FORM_data8 = 0x07,
130     DW_FORM_string = 0x08,
131     DW_FORM_block = 0x09,
132     DW_FORM_block1 = 0x0a,
133     DW_FORM_data1 = 0x0b,
134     DW_FORM_flag = 0x0c,
135     DW_FORM_sdata = 0x0d,
136     DW_FORM_strp = 0x0e,
137     DW_FORM_udata = 0x0f,
138     DW_FORM_ref_addr = 0x10,
139     DW_FORM_ref1 = 0x11,
140     DW_FORM_ref2 = 0x12,
141     DW_FORM_ref4 = 0x13,
142     DW_FORM_ref8 = 0x14,
143     DW_FORM_ref_udata = 0x15,
144     DW_FORM_indirect = 0x16
145   };
146
147 /* Attribute names and codes.  */
148
149 enum dwarf_attribute
150   {
151     DW_AT_sibling = 0x01,
152     DW_AT_location = 0x02,
153     DW_AT_name = 0x03,
154     DW_AT_ordering = 0x09,
155     DW_AT_subscr_data = 0x0a,
156     DW_AT_byte_size = 0x0b,
157     DW_AT_bit_offset = 0x0c,
158     DW_AT_bit_size = 0x0d,
159     DW_AT_element_list = 0x0f,
160     DW_AT_stmt_list = 0x10,
161     DW_AT_low_pc = 0x11,
162     DW_AT_high_pc = 0x12,
163     DW_AT_language = 0x13,
164     DW_AT_member = 0x14,
165     DW_AT_discr = 0x15,
166     DW_AT_discr_value = 0x16,
167     DW_AT_visibility = 0x17,
168     DW_AT_import = 0x18,
169     DW_AT_string_length = 0x19,
170     DW_AT_common_reference = 0x1a,
171     DW_AT_comp_dir = 0x1b,
172     DW_AT_const_value = 0x1c,
173     DW_AT_containing_type = 0x1d,
174     DW_AT_default_value = 0x1e,
175     DW_AT_inline = 0x20,
176     DW_AT_is_optional = 0x21,
177     DW_AT_lower_bound = 0x22,
178     DW_AT_producer = 0x25,
179     DW_AT_prototyped = 0x27,
180     DW_AT_return_addr = 0x2a,
181     DW_AT_start_scope = 0x2c,
182     DW_AT_stride_size = 0x2e,
183     DW_AT_upper_bound = 0x2f,
184     DW_AT_abstract_origin = 0x31,
185     DW_AT_accessibility = 0x32,
186     DW_AT_address_class = 0x33,
187     DW_AT_artificial = 0x34,
188     DW_AT_base_types = 0x35,
189     DW_AT_calling_convention = 0x36,
190     DW_AT_count = 0x37,
191     DW_AT_data_member_location = 0x38,
192     DW_AT_decl_column = 0x39,
193     DW_AT_decl_file = 0x3a,
194     DW_AT_decl_line = 0x3b,
195     DW_AT_declaration = 0x3c,
196     DW_AT_discr_list = 0x3d,
197     DW_AT_encoding = 0x3e,
198     DW_AT_external = 0x3f,
199     DW_AT_frame_base = 0x40,
200     DW_AT_friend = 0x41,
201     DW_AT_identifier_case = 0x42,
202     DW_AT_macro_info = 0x43,
203     DW_AT_namelist_items = 0x44,
204     DW_AT_priority = 0x45,
205     DW_AT_segment = 0x46,
206     DW_AT_specification = 0x47,
207     DW_AT_static_link = 0x48,
208     DW_AT_type = 0x49,
209     DW_AT_use_location = 0x4a,
210     DW_AT_variable_parameter = 0x4b,
211     DW_AT_virtuality = 0x4c,
212     DW_AT_vtable_elem_location = 0x4d,
213     /* DWARF 3 values.  */
214     DW_AT_allocated     = 0x4e,
215     DW_AT_associated    = 0x4f,
216     DW_AT_data_location = 0x50,
217     DW_AT_stride        = 0x51,
218     DW_AT_entry_pc      = 0x52,
219     DW_AT_use_UTF8      = 0x53,
220     DW_AT_extension     = 0x54,
221     DW_AT_ranges        = 0x55,
222     DW_AT_trampoline    = 0x56,
223     DW_AT_call_column   = 0x57,
224     DW_AT_call_file     = 0x58,
225     DW_AT_call_line     = 0x59,
226     /* SGI/MIPS Extensions.  */
227     DW_AT_MIPS_fde = 0x2001,
228     DW_AT_MIPS_loop_begin = 0x2002,
229     DW_AT_MIPS_tail_loop_begin = 0x2003,
230     DW_AT_MIPS_epilog_begin = 0x2004,
231     DW_AT_MIPS_loop_unroll_factor = 0x2005,
232     DW_AT_MIPS_software_pipeline_depth = 0x2006,
233     DW_AT_MIPS_linkage_name = 0x2007,
234     DW_AT_MIPS_stride = 0x2008,
235     DW_AT_MIPS_abstract_name = 0x2009,
236     DW_AT_MIPS_clone_origin = 0x200a,
237     DW_AT_MIPS_has_inlines = 0x200b,
238     /* GNU extensions.  */
239     DW_AT_sf_names   = 0x2101,
240     DW_AT_src_info   = 0x2102,
241     DW_AT_mac_info   = 0x2103,
242     DW_AT_src_coords = 0x2104,
243     DW_AT_body_begin = 0x2105,
244     DW_AT_body_end   = 0x2106,
245     DW_AT_GNU_vector = 0x2107,
246     /* VMS Extensions.  */
247     DW_AT_VMS_rtnbeg_pd_address = 0x2201
248   };
249
250 #define DW_AT_lo_user   0x2000  /* Implementation-defined range start.  */
251 #define DW_AT_hi_user   0x3ff0  /* Implementation-defined range end.  */
252
253 /* Location atom names and codes.  */
254 enum dwarf_location_atom
255   {
256     DW_OP_addr = 0x03,
257     DW_OP_deref = 0x06,
258     DW_OP_const1u = 0x08,
259     DW_OP_const1s = 0x09,
260     DW_OP_const2u = 0x0a,
261     DW_OP_const2s = 0x0b,
262     DW_OP_const4u = 0x0c,
263     DW_OP_const4s = 0x0d,
264     DW_OP_const8u = 0x0e,
265     DW_OP_const8s = 0x0f,
266     DW_OP_constu = 0x10,
267     DW_OP_consts = 0x11,
268     DW_OP_dup = 0x12,
269     DW_OP_drop = 0x13,
270     DW_OP_over = 0x14,
271     DW_OP_pick = 0x15,
272     DW_OP_swap = 0x16,
273     DW_OP_rot = 0x17,
274     DW_OP_xderef = 0x18,
275     DW_OP_abs = 0x19,
276     DW_OP_and = 0x1a,
277     DW_OP_div = 0x1b,
278     DW_OP_minus = 0x1c,
279     DW_OP_mod = 0x1d,
280     DW_OP_mul = 0x1e,
281     DW_OP_neg = 0x1f,
282     DW_OP_not = 0x20,
283     DW_OP_or = 0x21,
284     DW_OP_plus = 0x22,
285     DW_OP_plus_uconst = 0x23,
286     DW_OP_shl = 0x24,
287     DW_OP_shr = 0x25,
288     DW_OP_shra = 0x26,
289     DW_OP_xor = 0x27,
290     DW_OP_bra = 0x28,
291     DW_OP_eq = 0x29,
292     DW_OP_ge = 0x2a,
293     DW_OP_gt = 0x2b,
294     DW_OP_le = 0x2c,
295     DW_OP_lt = 0x2d,
296     DW_OP_ne = 0x2e,
297     DW_OP_skip = 0x2f,
298     DW_OP_lit0 = 0x30,
299     DW_OP_lit1 = 0x31,
300     DW_OP_lit2 = 0x32,
301     DW_OP_lit3 = 0x33,
302     DW_OP_lit4 = 0x34,
303     DW_OP_lit5 = 0x35,
304     DW_OP_lit6 = 0x36,
305     DW_OP_lit7 = 0x37,
306     DW_OP_lit8 = 0x38,
307     DW_OP_lit9 = 0x39,
308     DW_OP_lit10 = 0x3a,
309     DW_OP_lit11 = 0x3b,
310     DW_OP_lit12 = 0x3c,
311     DW_OP_lit13 = 0x3d,
312     DW_OP_lit14 = 0x3e,
313     DW_OP_lit15 = 0x3f,
314     DW_OP_lit16 = 0x40,
315     DW_OP_lit17 = 0x41,
316     DW_OP_lit18 = 0x42,
317     DW_OP_lit19 = 0x43,
318     DW_OP_lit20 = 0x44,
319     DW_OP_lit21 = 0x45,
320     DW_OP_lit22 = 0x46,
321     DW_OP_lit23 = 0x47,
322     DW_OP_lit24 = 0x48,
323     DW_OP_lit25 = 0x49,
324     DW_OP_lit26 = 0x4a,
325     DW_OP_lit27 = 0x4b,
326     DW_OP_lit28 = 0x4c,
327     DW_OP_lit29 = 0x4d,
328     DW_OP_lit30 = 0x4e,
329     DW_OP_lit31 = 0x4f,
330     DW_OP_reg0 = 0x50,
331     DW_OP_reg1 = 0x51,
332     DW_OP_reg2 = 0x52,
333     DW_OP_reg3 = 0x53,
334     DW_OP_reg4 = 0x54,
335     DW_OP_reg5 = 0x55,
336     DW_OP_reg6 = 0x56,
337     DW_OP_reg7 = 0x57,
338     DW_OP_reg8 = 0x58,
339     DW_OP_reg9 = 0x59,
340     DW_OP_reg10 = 0x5a,
341     DW_OP_reg11 = 0x5b,
342     DW_OP_reg12 = 0x5c,
343     DW_OP_reg13 = 0x5d,
344     DW_OP_reg14 = 0x5e,
345     DW_OP_reg15 = 0x5f,
346     DW_OP_reg16 = 0x60,
347     DW_OP_reg17 = 0x61,
348     DW_OP_reg18 = 0x62,
349     DW_OP_reg19 = 0x63,
350     DW_OP_reg20 = 0x64,
351     DW_OP_reg21 = 0x65,
352     DW_OP_reg22 = 0x66,
353     DW_OP_reg23 = 0x67,
354     DW_OP_reg24 = 0x68,
355     DW_OP_reg25 = 0x69,
356     DW_OP_reg26 = 0x6a,
357     DW_OP_reg27 = 0x6b,
358     DW_OP_reg28 = 0x6c,
359     DW_OP_reg29 = 0x6d,
360     DW_OP_reg30 = 0x6e,
361     DW_OP_reg31 = 0x6f,
362     DW_OP_breg0 = 0x70,
363     DW_OP_breg1 = 0x71,
364     DW_OP_breg2 = 0x72,
365     DW_OP_breg3 = 0x73,
366     DW_OP_breg4 = 0x74,
367     DW_OP_breg5 = 0x75,
368     DW_OP_breg6 = 0x76,
369     DW_OP_breg7 = 0x77,
370     DW_OP_breg8 = 0x78,
371     DW_OP_breg9 = 0x79,
372     DW_OP_breg10 = 0x7a,
373     DW_OP_breg11 = 0x7b,
374     DW_OP_breg12 = 0x7c,
375     DW_OP_breg13 = 0x7d,
376     DW_OP_breg14 = 0x7e,
377     DW_OP_breg15 = 0x7f,
378     DW_OP_breg16 = 0x80,
379     DW_OP_breg17 = 0x81,
380     DW_OP_breg18 = 0x82,
381     DW_OP_breg19 = 0x83,
382     DW_OP_breg20 = 0x84,
383     DW_OP_breg21 = 0x85,
384     DW_OP_breg22 = 0x86,
385     DW_OP_breg23 = 0x87,
386     DW_OP_breg24 = 0x88,
387     DW_OP_breg25 = 0x89,
388     DW_OP_breg26 = 0x8a,
389     DW_OP_breg27 = 0x8b,
390     DW_OP_breg28 = 0x8c,
391     DW_OP_breg29 = 0x8d,
392     DW_OP_breg30 = 0x8e,
393     DW_OP_breg31 = 0x8f,
394     DW_OP_regx = 0x90,
395     DW_OP_fbreg = 0x91,
396     DW_OP_bregx = 0x92,
397     DW_OP_piece = 0x93,
398     DW_OP_deref_size = 0x94,
399     DW_OP_xderef_size = 0x95,
400     DW_OP_nop = 0x96,
401     /* DWARF 3 extensions.  */
402     DW_OP_push_object_address = 0x97,
403     DW_OP_call2 = 0x98,
404     DW_OP_call4 = 0x99,
405     DW_OP_call_ref = 0x9a,
406     /* GNU extensions.  */
407     DW_OP_GNU_push_tls_address = 0xe0
408   };
409
410 #define DW_OP_lo_user   0xe0    /* Implementation-defined range start.  */
411 #define DW_OP_hi_user   0xff    /* Implementation-defined range end.  */
412
413 /* Type encodings.  */
414 enum dwarf_type
415   {
416     DW_ATE_void = 0x0,
417     DW_ATE_address = 0x1,
418     DW_ATE_boolean = 0x2,
419     DW_ATE_complex_float = 0x3,
420     DW_ATE_float = 0x4,
421     DW_ATE_signed = 0x5,
422     DW_ATE_signed_char = 0x6,
423     DW_ATE_unsigned = 0x7,
424     DW_ATE_unsigned_char = 0x8,
425     /* DWARF 3.  */
426     DW_ATE_imaginary_float = 0x9
427   };
428
429 #define DW_ATE_lo_user 0x80
430 #define DW_ATE_hi_user 0xff
431
432 /* Array ordering names and codes.  */
433 enum dwarf_array_dim_ordering
434   {
435     DW_ORD_row_major = 0,
436     DW_ORD_col_major = 1
437   };
438
439 /* Access attribute.  */
440 enum dwarf_access_attribute
441   {
442     DW_ACCESS_public = 1,
443     DW_ACCESS_protected = 2,
444     DW_ACCESS_private = 3
445   };
446
447 /* Visibility.  */
448 enum dwarf_visibility_attribute
449   {
450     DW_VIS_local = 1,
451     DW_VIS_exported = 2,
452     DW_VIS_qualified = 3
453   };
454
455 /* Virtuality.  */
456 enum dwarf_virtuality_attribute
457   {
458     DW_VIRTUALITY_none = 0,
459     DW_VIRTUALITY_virtual = 1,
460     DW_VIRTUALITY_pure_virtual = 2
461   };
462
463 /* Case sensitivity.  */
464 enum dwarf_id_case
465   {
466     DW_ID_case_sensitive = 0,
467     DW_ID_up_case = 1,
468     DW_ID_down_case = 2,
469     DW_ID_case_insensitive = 3
470   };
471
472 /* Calling convention.  */
473 enum dwarf_calling_convention
474   {
475     DW_CC_normal = 0x1,
476     DW_CC_program = 0x2,
477     DW_CC_nocall = 0x3
478   };
479
480 #define DW_CC_lo_user 0x40
481 #define DW_CC_hi_user 0xff
482
483 /* Inline attribute.  */
484 enum dwarf_inline_attribute
485   {
486     DW_INL_not_inlined = 0,
487     DW_INL_inlined = 1,
488     DW_INL_declared_not_inlined = 2,
489     DW_INL_declared_inlined = 3
490   };
491
492 /* Discriminant lists.  */
493 enum dwarf_discrim_list
494   {
495     DW_DSC_label = 0,
496     DW_DSC_range = 1
497   };
498
499 /* Line number opcodes.  */
500 enum dwarf_line_number_ops
501   {
502     DW_LNS_extended_op = 0,
503     DW_LNS_copy = 1,
504     DW_LNS_advance_pc = 2,
505     DW_LNS_advance_line = 3,
506     DW_LNS_set_file = 4,
507     DW_LNS_set_column = 5,
508     DW_LNS_negate_stmt = 6,
509     DW_LNS_set_basic_block = 7,
510     DW_LNS_const_add_pc = 8,
511     DW_LNS_fixed_advance_pc = 9,
512     /* DWARF 3.  */
513     DW_LNS_set_prologue_end = 10,
514     DW_LNS_set_epilogue_begin = 11,
515     DW_LNS_set_isa = 12
516   };
517
518 /* Line number extended opcodes.  */
519 enum dwarf_line_number_x_ops
520   {
521     DW_LNE_end_sequence = 1,
522     DW_LNE_set_address = 2,
523     DW_LNE_define_file = 3
524   };
525
526 /* Call frame information.  */
527 enum dwarf_call_frame_info
528   {
529     DW_CFA_advance_loc = 0x40,
530     DW_CFA_offset = 0x80,
531     DW_CFA_restore = 0xc0,
532     DW_CFA_nop = 0x00,
533     DW_CFA_set_loc = 0x01,
534     DW_CFA_advance_loc1 = 0x02,
535     DW_CFA_advance_loc2 = 0x03,
536     DW_CFA_advance_loc4 = 0x04,
537     DW_CFA_offset_extended = 0x05,
538     DW_CFA_restore_extended = 0x06,
539     DW_CFA_undefined = 0x07,
540     DW_CFA_same_value = 0x08,
541     DW_CFA_register = 0x09,
542     DW_CFA_remember_state = 0x0a,
543     DW_CFA_restore_state = 0x0b,
544     DW_CFA_def_cfa = 0x0c,
545     DW_CFA_def_cfa_register = 0x0d,
546     DW_CFA_def_cfa_offset = 0x0e,
547
548     /* DWARF 3.  */
549     DW_CFA_def_cfa_expression = 0x0f,
550     DW_CFA_expression = 0x10,
551     DW_CFA_offset_extended_sf = 0x11,
552     DW_CFA_def_cfa_sf = 0x12,
553     DW_CFA_def_cfa_offset_sf = 0x13,
554
555     /* SGI/MIPS specific.  */
556     DW_CFA_MIPS_advance_loc8 = 0x1d,
557
558     /* GNU extensions.  */
559     DW_CFA_GNU_window_save = 0x2d,
560     DW_CFA_GNU_args_size = 0x2e,
561     DW_CFA_GNU_negative_offset_extended = 0x2f
562   };
563
564 #define DW_CIE_ID         0xffffffff
565 #define DW_CIE_VERSION    1
566
567 #define DW_CFA_extended   0
568 #define DW_CFA_low_user   0x1c
569 #define DW_CFA_high_user  0x3f
570
571 #define DW_CHILDREN_no               0x00
572 #define DW_CHILDREN_yes              0x01
573
574 #define DW_ADDR_none            0
575
576 /* Source language names and codes.  */
577 enum dwarf_source_language
578   {
579     DW_LANG_C89 = 0x0001,
580     DW_LANG_C = 0x0002,
581     DW_LANG_Ada83 = 0x0003,
582     DW_LANG_C_plus_plus = 0x0004,
583     DW_LANG_Cobol74 = 0x0005,
584     DW_LANG_Cobol85 = 0x0006,
585     DW_LANG_Fortran77 = 0x0007,
586     DW_LANG_Fortran90 = 0x0008,
587     DW_LANG_Pascal83 = 0x0009,
588     DW_LANG_Modula2 = 0x000a,
589     DW_LANG_Java = 0x000b,
590     /* DWARF 3.  */
591     DW_LANG_C99 = 0x000c,
592     DW_LANG_Ada95 = 0x000d,
593     DW_LANG_Fortran95 = 0x000e,
594     /* MIPS.  */
595     DW_LANG_Mips_Assembler = 0x8001
596   };
597
598
599 #define DW_LANG_lo_user 0x8000  /* Implementation-defined range start.  */
600 #define DW_LANG_hi_user 0xffff  /* Implementation-defined range start.  */
601
602 /* Names and codes for macro information.  */
603 enum dwarf_macinfo_record_type
604   {
605     DW_MACINFO_define = 1,
606     DW_MACINFO_undef = 2,
607     DW_MACINFO_start_file = 3,
608     DW_MACINFO_end_file = 4,
609     DW_MACINFO_vendor_ext = 255
610   };
611 \f
612 /* @@@ For use with GNU frame unwind information.  */
613
614 #define DW_EH_PE_absptr         0x00
615 #define DW_EH_PE_omit           0xff
616
617 #define DW_EH_PE_uleb128        0x01
618 #define DW_EH_PE_udata2         0x02
619 #define DW_EH_PE_udata4         0x03
620 #define DW_EH_PE_udata8         0x04
621 #define DW_EH_PE_sleb128        0x09
622 #define DW_EH_PE_sdata2         0x0A
623 #define DW_EH_PE_sdata4         0x0B
624 #define DW_EH_PE_sdata8         0x0C
625 #define DW_EH_PE_signed         0x08
626
627 #define DW_EH_PE_pcrel          0x10
628 #define DW_EH_PE_textrel        0x20
629 #define DW_EH_PE_datarel        0x30
630 #define DW_EH_PE_funcrel        0x40
631 #define DW_EH_PE_aligned        0x50
632
633 #define DW_EH_PE_indirect       0x80
634
635 #endif /* dwarf2.h */