OSDN Git Service

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