Subversion Repositories tendra.SVN

Rev

Rev 2 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
2
    		 Crown Copyright (c) 1997
3
 
4
    This TenDRA(r) Computer Program is subject to Copyright
5
    owned by the United Kingdom Secretary of State for Defence
6
    acting through the Defence Evaluation and Research Agency
7
    (DERA).  It is made available to Recipients with a
8
    royalty-free licence for its use, reproduction, transfer
9
    to other parties and amendment for any purpose not excluding
10
    product development provided that any such use et cetera
11
    shall be deemed to be acceptance of the following conditions:-
12
 
13
        (1) Its Recipients shall ensure that this Notice is
14
        reproduced upon any copies or amended versions of it;
15
 
16
        (2) Any amended version of it shall be clearly marked to
17
        show both the nature of and the organisation responsible
18
        for the relevant amendment or amendments;
19
 
20
        (3) Its onward transfer from a recipient to another
21
        party shall be deemed to be that party's acceptance of
22
        these conditions;
23
 
24
        (4) DERA gives no warranty or assurance as to its
25
        quality or suitability for any purpose and DERA accepts
26
        no liability whatsoever in relation to any use to which
27
        it may be put.
28
*/
29
 
30
 
31
/**********************************************************************
32
$Author: pwe $
33
$Date: 1998/03/11 11:03:35 $
34
$Revision: 1.3 $
35
$Log: dw2_abbrev.c,v $
36
 * Revision 1.3  1998/03/11  11:03:35  pwe
37
 * DWARF optimisation info
38
 *
39
 * Revision 1.2  1998/02/18  11:22:16  pwe
40
 * test corrections
41
 *
42
 * Revision 1.1.1.1  1998/01/17  15:55:48  release
43
 * First version to be checked into rolling release.
44
 *
45
 * Revision 1.7  1998/01/09  09:31:44  pwe
46
 * prep restructure
47
 *
48
 * Revision 1.6  1997/12/08  16:37:17  pwe
49
 * abbrev key & directory names
50
 *
51
 * Revision 1.5  1997/12/05  10:24:06  pwe
52
 * name change
53
 *
54
 * Revision 1.4  1997/12/04  19:41:58  pwe
55
 * ANDF-DE V1.9
56
 *
57
 * Revision 1.3  1997/11/06  09:22:35  pwe
58
 * ANDF-DE V1.8
59
 *
60
 * Revision 1.2  1997/10/23  09:28:02  pwe
61
 * ANDF-DE v1.7, extra diags
62
 *
63
 * Revision 1.1  1997/10/10  18:19:00  pwe
64
 * prep ANDF-DE revision
65
 *
66
 * Revision 1.6  1997/08/23  13:36:26  pwe
67
 * initial ANDF-DE
68
 *
69
 * Revision 1.5  1997/05/02  11:00:28  pwe
70
 * stmt_list is ref_addr
71
 *
72
 * Revision 1.4  1997/04/17  11:50:07  pwe
73
 * Sparc and 80x86 support
74
 *
75
 * Revision 1.3  1997/04/01  17:19:29  pwe
76
 * diagnose pl_tests and locate -> platform specific
77
 *
78
 * Revision 1.2  1997/03/24  11:10:12  pwe
79
 * struct bitfields
80
 *
81
 * Revision 1.1  1997/03/20  16:08:52  pwe
82
 * first version
83
 *
84
**********************************************************************/
85
 
86
#include "config.h"
87
#include "dw2_config.h"
88
#include "dw2_basic.h"
89
#include "dw2_abbrev.h"
90
#include "dw2_abbrev_vn.h"
91
#include "dw2_codes.h"
92
#include "dw2_entries.h"
93
#include "readglob.h"
94
 
95
 
96
static void sep
97
    PROTO_Z ()
98
{
99
  outs (", ");
100
  return;
101
}
102
 
103
static void set_abbrev_tag
104
    PROTO_N ( (en, c, tag_code, has_children) )
105
    PROTO_T ( abbrev_entry * en X int c X int tag_code X int has_children )
106
{
107
  if (!en->index && !c) {
108
    good_trans = 1;
109
    IGNORE printf ("!!!	abbreviation index unset: %s\n", en->aname);
110
  }
111
  out8 (); uleb128 ((unsigned long)(en->index + c)); sep();
112
  uleb128 ((unsigned long)tag_code); sep();
113
  outn (has_children ? (long)DW_CHILDREN_yes : (long)DW_CHILDREN_no);
114
  outnl_comment_i (en->aname, (long)c);
115
  return;
116
}
117
 
118
static void set_decl_attributes
119
    PROTO_Z ()
120
{
121
  set_attribute (DW_AT_decl_file, DW_FORM_udata);
122
  set_attribute (DW_AT_decl_line, DW_FORM_udata);
123
  set_attribute (DW_AT_decl_column, DW_FORM_udata);
124
}
125
 
126
static void obj_abbrev
127
    PROTO_N ( (en, tag_code) )
128
    PROTO_T ( abbrev_entry * en X int tag_code )
129
{
130
  int c = 0;
131
  do {
132
    long attr = (en->attr)[c];
133
    set_abbrev_tag (en, c, tag_code, 0);
134
    if (attr & H_AO)
135
      set_attribute (DW_AT_abstract_origin, DW_FORM_ref_addr);
136
    if (attr & H_SP)
137
      set_attribute (DW_AT_specification, DW_FORM_ref_addr);
138
    if (attr & H_DC)
139
      set_attribute (DW_AT_declaration, DW_FORM_flag);
140
    if (attr & H_NM)
141
      set_attribute (DW_AT_name, DW_FORM_string);
142
    if (attr & H_XY)
143
      set_decl_attributes ();
144
    if (attr & H_EX)
145
      set_attribute (DW_AT_external, DW_FORM_flag);
146
    if (attr & H_AT)
147
      set_attribute (DW_AT_artificial, DW_FORM_flag);
148
    if (attr & H_AC)
149
      set_attribute (DW_AT_accessibility, DW_FORM_data1);
150
    if (attr & H_TP)
151
      set_attribute (DW_AT_type, DW_FORM_ref_addr);
152
    if (attr & H_VP)
153
      set_attribute (DW_AT_variable_parameter, DW_FORM_flag);
154
#ifdef H_DX
155
    if (attr & H_DX)
156
      set_attribute (DW_AT_DD_computed_default, DW_FORM_flag);
157
#endif
158
    if (attr & H_DF)
159
      set_attribute (DW_AT_default_value, DW_FORM_indirect);
160
    if (attr & H_SS)
161
      set_attribute (DW_AT_start_scope, DW_FORM_data2);
162
    if (attr & H_CV)
163
      set_attribute (DW_AT_const_value, DW_FORM_indirect);
164
    if (attr & H_LC)
165
      set_attribute (DW_AT_location, DW_FORM_block1);
166
    if (attr & H_LL)
167
      set_attribute (DW_AT_location, DW_FORM_ref_addr);
168
    if (attr & H_LE)
169
      set_attribute (DW_AT_DD_ext_location, DW_FORM_ref_addr);
170
    if (attr & H_RP)
171
      set_attribute (DW_AT_DD_repn, DW_FORM_indirect);
172
    set_attribute (0, 0);
173
    c++;
174
  }
175
  while ((en->attr)[c]);
176
  return;
177
}
178
 
179
static void module_abbrev
180
    PROTO_N ( (en, tag_code) )
181
    PROTO_T ( abbrev_entry * en X int tag_code )
182
{
183
  int c = 0;
184
  do {
185
    long attr = (en->attr)[c];
186
    set_abbrev_tag (en, c, tag_code, 1);
187
    if (attr & H_AO)
188
      set_attribute (DW_AT_abstract_origin, DW_FORM_ref_addr);
189
    if (attr & H_SP)
190
      set_attribute (DW_AT_specification, DW_FORM_ref_addr);
191
    if (attr & H_DC)
192
      set_attribute (DW_AT_declaration, DW_FORM_flag);
193
    if (attr & H_NM)
194
      set_attribute (DW_AT_name, DW_FORM_string);
195
    if (attr & H_XY)
196
      set_decl_attributes ();
197
    if (attr & H_AT)
198
      set_attribute (DW_AT_artificial, DW_FORM_flag);
199
    if (attr & H_AC)
200
      set_attribute (DW_AT_accessibility, DW_FORM_data1);
201
    if (attr & H_PC) {
202
      set_attribute (DW_AT_low_pc, DW_FORM_addr);
203
      set_attribute (DW_AT_high_pc, DW_FORM_addr);
204
    }
205
    if (attr & H_EXTN)
206
      set_attribute (DW_AT_DD_indirect_attributes, DW_FORM_block2);
207
    set_attribute (0, 0);
208
    c++;
209
  }
210
  while ((en->attr)[c]);
211
  return;
212
}
213
 
214
static void struct_abbrev
215
    PROTO_N ( (en, tag_code) )
216
    PROTO_T ( abbrev_entry * en X int tag_code )
217
{
218
  int c = 0;
219
  do {
220
    long attr = (en->attr)[c];
221
    set_abbrev_tag (en, c, tag_code, 1);
222
    if (attr & H_SP)
223
      set_attribute (DW_AT_specification, DW_FORM_ref_addr);
224
    if (attr & H_DC)
225
      set_attribute (DW_AT_declaration, DW_FORM_flag);
226
    if (attr & H_NM)
227
      set_attribute (DW_AT_name, DW_FORM_string);
228
    if (attr & H_XY)
229
      set_decl_attributes ();
230
    if (attr & H_SZ)
231
      set_attribute (DW_AT_byte_size, DW_FORM_udata);
232
    if (attr & H_NW)
233
      set_attribute (DW_AT_DD_newtype, DW_FORM_flag);
234
    if (attr & H_EXTN)
235
      set_attribute (DW_AT_DD_indirect_attributes, DW_FORM_block2);
236
    set_attribute (0, 0);
237
    c++;
238
  }
239
  while ((en->attr)[c]);
240
  return;
241
}
242
 
243
 
244
void do_abbreviations
245
    PROTO_Z ()
246
{
247
  int c;
248
  enter_section ("debug_abbrev");
249
  out_ext_label (abbrev_name);
250
 
251
  set_abbrev_tag (&dwe_comp_unit, 0, DW_TAG_compile_unit, 1);
252
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
253
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
254
  set_attribute (DW_AT_name, DW_FORM_string);
255
  set_attribute (DW_AT_language, DW_FORM_udata);
256
  set_attribute (DW_AT_stmt_list, DW_FORM_ref_addr);
257
  set_attribute (DW_AT_comp_dir, DW_FORM_string);
258
  set_attribute (DW_AT_producer, DW_FORM_string);
259
  set_attribute (DW_AT_identifier_case, DW_FORM_data1);
260
  set_attribute (0, 0);
261
 
262
  set_abbrev_tag (&dwe_cmac_unit, 0, DW_TAG_compile_unit, 1);
263
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
264
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
265
  set_attribute (DW_AT_name, DW_FORM_string);
266
  set_attribute (DW_AT_language, DW_FORM_udata);
267
  set_attribute (DW_AT_stmt_list, DW_FORM_ref_addr);
268
  set_attribute (DW_AT_macro_info, DW_FORM_ref_addr);
269
  set_attribute (DW_AT_comp_dir, DW_FORM_string);
270
  set_attribute (DW_AT_producer, DW_FORM_string);
271
  set_attribute (DW_AT_identifier_case, DW_FORM_data1);
272
  set_attribute (0, 0);
273
 
274
  module_abbrev (&dwe_module, DW_TAG_module);
275
 
276
  module_abbrev (&dwe_namespace, DW_TAG_DD_namespace);
277
 
278
  set_abbrev_tag (&dwe_subunit, 0, DW_TAG_DD_subunit, 1);
279
  set_attribute (DW_AT_DD_parent, DW_FORM_ref_addr);
280
  set_attribute (DW_AT_artificial, DW_FORM_flag);
281
  set_attribute (0, 0);
282
 
283
  set_abbrev_tag (&dwe_childunit, 0, DW_TAG_DD_child_unit, 1);
284
  set_attribute (DW_AT_DD_parent, DW_FORM_ref_addr);
285
  set_attribute (0, 0);
286
 
287
  set_abbrev_tag (&dwe_child_acc, 0, DW_TAG_DD_child_unit, 1);
288
  set_attribute (DW_AT_DD_parent, DW_FORM_ref_addr);
289
  set_attribute (DW_AT_accessibility, DW_FORM_data1);
290
  set_attribute (0, 0);
291
 
292
  c = 0;
293
  do {
294
    long attr = (dwe_import.attr)[c];
295
    set_abbrev_tag (&dwe_import, c, DW_TAG_imported_declaration, 0);
296
    if (attr & H_NM)
297
      set_attribute (DW_AT_name, DW_FORM_string);
298
    if (attr & H_XY)
299
      set_decl_attributes ();
300
    if (attr & H_AC)
301
      set_attribute (DW_AT_accessibility, DW_FORM_data1);
302
    set_attribute (DW_AT_import, DW_FORM_ref_addr);
303
    set_attribute (DW_AT_DD_import_kind, DW_FORM_udata);
304
    if (attr & H_SS)
305
      set_attribute (DW_AT_start_scope, DW_FORM_data2);
306
    set_attribute (0, 0);
307
    c++;
308
  }
309
  while ((dwe_import.attr)[c]);
310
 
311
  c = 0;
312
  do {
313
    long attr = (dwe_import_p.attr)[c];
314
    set_abbrev_tag (&dwe_import_p, c, DW_TAG_imported_declaration, 1);
315
    if (attr & H_NM)
316
      set_attribute (DW_AT_name, DW_FORM_string);
317
    if (attr & H_XY)
318
      set_decl_attributes ();
319
    if (attr & H_AC)
320
      set_attribute (DW_AT_accessibility, DW_FORM_data1);
321
    set_attribute (DW_AT_import, DW_FORM_ref_addr);
322
    set_attribute (DW_AT_DD_import_kind, DW_FORM_udata);
323
    if (attr & H_SS)
324
      set_attribute (DW_AT_start_scope, DW_FORM_data2);
325
    set_attribute (0, 0);
326
    c++;
327
  }
328
  while ((dwe_import_p.attr)[c]);
329
 
330
  c = 0;
331
  do {
332
    long attr = (dwe_proc.attr)[c];
333
    set_abbrev_tag (&dwe_proc, c, DW_TAG_subprogram, 1);
334
    if (attr & H_AO)
335
      set_attribute (DW_AT_abstract_origin, DW_FORM_ref_addr);
336
    if (attr & H_SP)
337
      set_attribute (DW_AT_specification, DW_FORM_ref_addr);
338
    if (attr & H_DC)
339
      set_attribute (DW_AT_declaration, DW_FORM_flag);
340
    if (attr & H_NM)
341
      set_attribute (DW_AT_name, DW_FORM_string);
342
    if (attr & H_XY)
343
      set_decl_attributes ();
344
    if (attr & H_EX)
345
      set_attribute (DW_AT_external, DW_FORM_flag);
346
    if (attr & H_AT)
347
      set_attribute (DW_AT_artificial, DW_FORM_flag);
348
    if (attr & H_AC)
349
      set_attribute (DW_AT_accessibility, DW_FORM_data1);
350
    if (attr & H_CC)
351
      set_attribute (DW_AT_calling_convention, DW_FORM_data1);
352
    if (attr & H_TP)
353
      set_attribute (DW_AT_type, DW_FORM_ref_addr);
354
    if (attr & H_PT)
355
      set_attribute (DW_AT_prototyped, DW_FORM_flag);
356
    if (attr & H_IL)
357
      set_attribute (DW_AT_inline, DW_FORM_data1);
358
    if (attr & H_VT)
359
      set_attribute (DW_AT_virtuality, DW_FORM_data1);
360
    if (attr & H_VL)
361
      set_attribute (DW_AT_vtable_elem_location, DW_FORM_block1);
362
    if (attr & H_SS)
363
      set_attribute (DW_AT_start_scope, DW_FORM_data2);
364
    if (attr & H_PC) {
365
      set_attribute (DW_AT_low_pc, DW_FORM_addr);
366
      set_attribute (DW_AT_high_pc, DW_FORM_addr);
367
      set_attribute (DW_AT_return_addr, DW_FORM_block1);
368
      set_attribute (DW_AT_frame_base, DW_FORM_block1);
369
    }
370
    if (attr & H_SL)
371
      set_attribute (DW_AT_static_link, DW_FORM_block1);
372
    if (attr & H_EXTN)
373
      set_attribute (DW_AT_DD_indirect_attributes, DW_FORM_block2);
374
    if (attr & H_EL)
375
      set_attribute (DW_AT_DD_elaboration, DW_FORM_ref_addr);
376
    if (attr & H_GN)
377
      set_attribute (DW_AT_DD_generic_name, DW_FORM_string);
378
    if (attr & H_RP)
379
      set_attribute (DW_AT_DD_repn, DW_FORM_indirect);
380
    if (attr & H_LN)
381
      set_attribute (DW_AT_language, DW_FORM_udata);
382
    set_attribute (0, 0);
383
    c++;
384
  }
385
  while ((dwe_proc.attr)[c]);
386
 
387
  set_abbrev_tag (&dwe_entrypt, 0, DW_TAG_entry_point, 0);
388
  set_attribute (0, 0);
389
 
390
  obj_abbrev (&dwe_param, DW_TAG_formal_parameter);
391
 
392
  set_abbrev_tag (&dwe_formal, 0, DW_TAG_formal_parameter, 0);
393
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
394
  set_attribute (0, 0);
395
 
396
  set_abbrev_tag (&dwe_opt_par, 0, DW_TAG_unspecified_parameters, 0);
397
  set_attribute (0, 0);
398
 
399
  set_abbrev_tag (&dwe_thrown_t, 0, DW_TAG_thrown_type, 0);
400
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
401
  set_attribute (0, 0);
402
 
403
  set_abbrev_tag (&dwe_inl_call, 0, DW_TAG_inlined_subroutine, 1);
404
  set_attribute (DW_AT_abstract_origin, DW_FORM_ref_addr);
405
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
406
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
407
  set_attribute (0, 0);
408
 
409
  set_abbrev_tag (&dwe_inl_opnd, 0, DW_TAG_inlined_subroutine, 1);
410
  set_attribute (DW_AT_abstract_origin, DW_FORM_ref_addr);
411
  set_attribute (0, 0);
412
 
413
  c = 0;
414
  do {
415
    long attr = (dwe_scope.attr)[c];
416
    set_abbrev_tag (&dwe_scope, c, DW_TAG_lexical_block, 1);
417
    if (attr & H_NM)
418
      set_attribute (DW_AT_name, DW_FORM_string);
419
    if (attr & H_XY)
420
      set_decl_attributes ();
421
    if (attr & H_PC) {
422
      set_attribute (DW_AT_low_pc, DW_FORM_addr);
423
      set_attribute (DW_AT_high_pc, DW_FORM_addr);
424
    }
425
    if (attr & H_BG)
426
      set_attribute (DW_AT_DD_begin, DW_FORM_addr);
427
    set_attribute (0, 0);
428
    c++;
429
  }
430
  while ((dwe_scope.attr)[c]);
431
 
432
  set_abbrev_tag (&dwe_fragment, 0, DW_TAG_DD_lexical_fragment, 1);
433
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
434
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
435
  set_attribute (0, 0);
436
 
437
  set_abbrev_tag (&dwe_label, 0, DW_TAG_label, 0);
438
  set_attribute (DW_AT_name, DW_FORM_string);
439
  set_decl_attributes ();
440
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
441
  set_attribute (0, 0);
442
 
443
  set_abbrev_tag (&dwe_with, 0, DW_TAG_with_stmt, 1);
444
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
445
  set_attribute (DW_AT_location, DW_FORM_block1);
446
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
447
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
448
  set_attribute (0, 0);
449
 
450
  set_abbrev_tag (&dwe_try, 0, DW_TAG_try_block, 1);
451
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
452
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
453
  set_attribute (0, 0);
454
 
455
  set_abbrev_tag (&dwe_catch, 0, DW_TAG_catch_block, 1);
456
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
457
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
458
  set_attribute (0, 0);
459
 
460
  obj_abbrev (&dwe_variable, DW_TAG_variable);
461
  obj_abbrev (&dwe_constant, DW_TAG_constant);
462
 
463
  set_abbrev_tag (&dwe_tmpl_type, 0, DW_TAG_template_type_param, 0);
464
  set_attribute (DW_AT_name, DW_FORM_string);
465
  set_decl_attributes ();
466
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
467
  set_attribute (0, 0);
468
 
469
  set_abbrev_tag (&dwe_tmpl_val, 0, DW_TAG_template_value_param, 0);
470
  set_attribute (DW_AT_name, DW_FORM_string);
471
  set_decl_attributes ();
472
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
473
  set_attribute (DW_AT_const_value, DW_FORM_indirect);
474
  set_attribute (0, 0);
475
 
476
  set_abbrev_tag (&dwe_tmpl_proc, 0, DW_TAG_DD_template_proc_param, 0);
477
  set_attribute (DW_AT_name, DW_FORM_string);
478
  set_decl_attributes ();
479
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
480
  set_attribute (0, 0);
481
 
482
  set_abbrev_tag (&dwe_tmpl_mod, 0, DW_TAG_DD_template_module_param, 0);
483
  set_attribute (DW_AT_name, DW_FORM_string);
484
  set_decl_attributes ();
485
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
486
  set_attribute (0, 0);
487
 
488
  c = 0;
489
  do {
490
    long attr = (dwe_typedef.attr)[c];
491
    set_abbrev_tag (&dwe_typedef, c, DW_TAG_typedef, 0);
492
    if (attr & H_AO)
493
      set_attribute (DW_AT_abstract_origin, DW_FORM_ref_addr);
494
    if (attr & H_SP)
495
      set_attribute (DW_AT_specification, DW_FORM_ref_addr);
496
    if (attr & H_DC)
497
      set_attribute (DW_AT_declaration, DW_FORM_flag);
498
    if (attr & H_NM)
499
      set_attribute (DW_AT_name, DW_FORM_string);
500
    if (attr & H_XY)
501
      set_decl_attributes ();
502
    if (attr & H_AT)
503
      set_attribute (DW_AT_artificial, DW_FORM_flag);
504
    if (attr & H_AC)
505
      set_attribute (DW_AT_accessibility, DW_FORM_data1);
506
    if (attr & H_TP)
507
      set_attribute (DW_AT_type, DW_FORM_ref_addr);
508
    if (attr & H_NW)
509
      set_attribute (DW_AT_DD_newtype, DW_FORM_flag);
510
    if (attr & H_AD)
511
      set_attribute (DW_AT_DD_ada_derived, DW_FORM_flag);
512
    set_attribute (0, 0);
513
    c++;
514
  }
515
  while ((dwe_typedef.attr)[c]);
516
 
517
  c = 0;
518
  do {
519
    long attr = (dwe_typecon.attr)[c];
520
    set_abbrev_tag (&dwe_typecon, c, DW_TAG_typedef, 1);
521
    if (attr & H_SP)
522
      set_attribute (DW_AT_specification, DW_FORM_ref_addr);
523
    if (attr & H_DC)
524
      set_attribute (DW_AT_declaration, DW_FORM_flag);
525
    if (attr & H_NM)
526
      set_attribute (DW_AT_name, DW_FORM_string);
527
    if (attr & H_XY)
528
      set_decl_attributes ();
529
    if (attr & H_AT)
530
      set_attribute (DW_AT_artificial, DW_FORM_flag);
531
    if (attr & H_AC)
532
      set_attribute (DW_AT_accessibility, DW_FORM_data1);
533
    if (attr & H_TP)
534
      set_attribute (DW_AT_type, DW_FORM_ref_addr);
535
    if (attr & H_NW)
536
      set_attribute (DW_AT_DD_newtype, DW_FORM_flag);
537
    if (attr & H_AD)
538
      set_attribute (DW_AT_DD_ada_derived, DW_FORM_flag);
539
    set_attribute (0, 0);
540
    c++;
541
  }
542
  while ((dwe_typecon.attr)[c]);
543
 
544
  c = 0;
545
  do {
546
    long attr = (dwe_cnstraint.attr)[c];
547
    set_abbrev_tag (&dwe_cnstraint, c, DW_TAG_DD_constraint, 0);
548
    if (attr & H_RM)
549
      set_attribute (DW_AT_DD_constraint_ref, DW_FORM_ref_addr);
550
    if (attr & H_CV)
551
      set_attribute (DW_AT_const_value, DW_FORM_indirect);
552
    if (attr & H_TP)
553
      set_attribute (DW_AT_type, DW_FORM_ref_addr);
554
    set_attribute (0, 0);
555
    c++;
556
  }
557
  while ((dwe_cnstraint.attr)[c]);
558
 
559
  set_abbrev_tag (&dwe_base_type, 0, DW_TAG_base_type, 0);
560
  set_attribute (DW_AT_name, DW_FORM_string);
561
  set_attribute (DW_AT_encoding, DW_FORM_data1);
562
  set_attribute (DW_AT_byte_size, DW_FORM_udata);
563
  set_attribute (0, 0);
564
 
565
  set_abbrev_tag (&dwe_cnst_type, 0, DW_TAG_const_type, 0);
566
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
567
  set_attribute (0, 0);
568
 
569
  set_abbrev_tag (&dwe_vol_type, 0, DW_TAG_volatile_type, 0);
570
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
571
  set_attribute (0, 0);
572
 
573
  set_abbrev_tag (&dwe_clwd_type, 0, DW_TAG_DD_class_wide_type, 0);
574
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
575
  set_attribute (0, 0);
576
 
577
  set_abbrev_tag (&dwe_als_type, 0, DW_TAG_DD_aliased_type, 0);
578
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
579
  set_attribute (0, 0);
580
 
581
  set_abbrev_tag (&dwe_lim_type, 0, DW_TAG_DD_limited_type, 0);
582
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
583
  set_attribute (0, 0);
584
 
585
  set_abbrev_tag (&dwe_ptr_type, 0, DW_TAG_pointer_type, 0);
586
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
587
  set_attribute (0, 0);
588
 
589
  set_abbrev_tag (&dwe_hpptr_t, 0, DW_TAG_pointer_type, 0);
590
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
591
  set_attribute (DW_AT_DD_heap_only_pointer, DW_FORM_flag);
592
  set_attribute (0, 0);
593
 
594
  set_abbrev_tag (&dwe_ref_type, 0, DW_TAG_reference_type, 0);
595
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
596
  set_attribute (0, 0);
597
 
598
  set_abbrev_tag (&dwe_pack_type, 0, DW_TAG_packed_type, 0);
599
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
600
  set_attribute (0, 0);
601
 
602
  set_abbrev_tag (&dwe_arr_type, 0, DW_TAG_array_type, 1);
603
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
604
  set_attribute (DW_AT_stride_size, DW_FORM_indirect);
605
  set_attribute (DW_AT_ordering, DW_FORM_data1);
606
  set_attribute (DW_AT_byte_size, DW_FORM_udata);
607
  set_attribute (0, 0);
608
 
609
  set_abbrev_tag (&dwe_arr_dyn, 0, DW_TAG_array_type, 1);
610
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
611
  set_attribute (DW_AT_stride_size, DW_FORM_indirect);
612
  set_attribute (DW_AT_ordering, DW_FORM_data1);
613
  set_attribute (0, 0);
614
 
615
  c = 0;
616
  do {
617
    long attr = (dwe_subr_type.attr)[c];
618
    set_abbrev_tag (&dwe_subr_type, c, DW_TAG_subrange_type, 0);
619
    if (attr & H_TP)
620
      set_attribute (DW_AT_type, DW_FORM_ref_addr);
621
    if (attr & H_SZ)
622
      set_attribute (DW_AT_byte_size, DW_FORM_udata);
623
    if (attr & H_LB)
624
      set_attribute (DW_AT_lower_bound, DW_FORM_indirect);
625
    if (attr & H_UB)
626
      set_attribute (DW_AT_upper_bound, DW_FORM_indirect);
627
    if (attr & H_CN)
628
      set_attribute (DW_AT_count, DW_FORM_indirect);
629
    set_attribute (0, 0);
630
    c++;
631
  }
632
  while ((dwe_subr_type.attr)[c]);
633
 
634
  c = 0;
635
  do {
636
    long attr = (dwe_enum_type.attr)[c];
637
    set_abbrev_tag (&dwe_enum_type, c, DW_TAG_enumeration_type, 1);
638
    if (attr & H_SP)
639
      set_attribute (DW_AT_specification, DW_FORM_ref_addr);
640
    if (attr & H_DC)
641
      set_attribute (DW_AT_declaration, DW_FORM_flag);
642
    if (attr & H_NM)
643
      set_attribute (DW_AT_name, DW_FORM_string);
644
    if (attr & H_XY)
645
      set_decl_attributes ();
646
    if (attr & H_SZ)
647
      set_attribute (DW_AT_byte_size, DW_FORM_udata);
648
    if (attr & H_NW)
649
      set_attribute (DW_AT_DD_newtype, DW_FORM_flag);
650
    set_attribute (0, 0);
651
    c++;
652
  }
653
  while ((dwe_enum_type.attr)[c]);
654
 
655
  set_abbrev_tag (&dwe_enum_tor, 0, DW_TAG_enumerator, 0);
656
  set_attribute (DW_AT_name, DW_FORM_string);
657
  set_attribute (DW_AT_const_value, DW_FORM_indirect);
658
  set_attribute (0, 0);
659
 
660
  set_abbrev_tag (&dwe_enum_char, 0, DW_TAG_enumerator, 0);
661
  set_attribute (DW_AT_name, DW_FORM_udata);	/* character constant */
662
  set_attribute (DW_AT_const_value, DW_FORM_indirect);
663
  set_attribute (0, 0);
664
 
665
  struct_abbrev (&dwe_struct_t, DW_TAG_structure_type);
666
 
667
  struct_abbrev (&dwe_union_t, DW_TAG_union_type);
668
 
669
  struct_abbrev (&dwe_class_t, DW_TAG_class_type);
670
 
671
  c = 0;
672
  do {
673
    long attr = (dwe_member.attr)[c];
674
    set_abbrev_tag (&dwe_member, c, DW_TAG_member, 0);
675
    if (attr & H_NM)
676
      set_attribute (DW_AT_name, DW_FORM_string);
677
    if (attr & H_XY)
678
      set_decl_attributes ();
679
    if (attr & H_AC)
680
      set_attribute (DW_AT_accessibility, DW_FORM_data1);
681
    if (attr & H_TP)
682
      set_attribute (DW_AT_type, DW_FORM_ref_addr);
683
    if (attr & H_LC)
684
      set_attribute (DW_AT_data_member_location, DW_FORM_block1);
685
    if (attr & H_BF) {
686
      set_attribute (DW_AT_bit_offset, DW_FORM_data1);
687
      set_attribute (DW_AT_bit_size, DW_FORM_data1);
688
    }
689
    if (attr & H_DS)
690
      set_attribute (DW_AT_DD_discriminant, DW_FORM_flag);
691
#ifdef H_DX
692
    if (attr & H_DX)
693
      set_attribute (DW_AT_DD_computed_default, DW_FORM_flag);
694
#endif
695
    if (attr & H_DF)
696
      set_attribute (DW_AT_default_value, DW_FORM_indirect);
697
    set_attribute (0, 0);
698
    c++;
699
  }
700
  while ((dwe_member.attr)[c]);
701
 
702
  set_abbrev_tag (&dwe_varpart, 0, DW_TAG_variant_part, 1);
703
  set_attribute (DW_AT_discr, DW_FORM_ref_addr);
704
  set_attribute (0, 0);
705
 
706
  set_abbrev_tag (&dwe_varpart_t, 0, DW_TAG_variant_part, 1);
707
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
708
  set_attribute (0, 0);
709
 
710
  set_abbrev_tag (&dwe_variant_0, 0, DW_TAG_variant, 1);
711
  set_attribute (0, 0);
712
 
713
  set_abbrev_tag (&dwe_variant_1, 0, DW_TAG_variant, 1);
714
  set_attribute (DW_AT_discr_value, DW_FORM_indirect);
715
  set_attribute (0, 0);
716
 
717
  set_abbrev_tag (&dwe_variant_n, 0, DW_TAG_variant, 1);
718
  set_attribute (DW_AT_discr_list, DW_FORM_block2);
719
  set_attribute (0, 0);
720
 
721
  c = 0;
722
  do {
723
    long attr = (dwe_inheritce.attr)[c];
724
    set_abbrev_tag (&dwe_inheritce, c, DW_TAG_inheritance, 0);
725
    if (attr & H_XY)
726
      set_decl_attributes ();
727
    if (attr & H_TP)
728
      set_attribute (DW_AT_type, DW_FORM_ref_addr);
729
    if (attr & H_LC)
730
      set_attribute (DW_AT_data_member_location, DW_FORM_block1);
731
    if (attr & H_AC)
732
      set_attribute (DW_AT_accessibility, DW_FORM_data1);
733
    if (attr & H_VT)
734
      set_attribute (DW_AT_virtuality, DW_FORM_data1);
735
    set_attribute (0, 0);
736
    c++;
737
  }
738
  while ((dwe_inheritce.attr)[c]);
739
 
740
  set_abbrev_tag (&dwe_friend, 0, DW_TAG_friend, 0);
741
  set_attribute (DW_AT_friend, DW_FORM_ref_addr);
742
  set_attribute (0, 0);
743
 
744
  set_abbrev_tag (&dwe_ptrmem_t, 0, DW_TAG_ptr_to_member_type, 0);
745
  set_attribute (DW_AT_containing_type, DW_FORM_ref_addr);
746
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
747
  set_attribute (DW_AT_byte_size, DW_FORM_udata);
748
  set_attribute (0, 0);
749
 
750
  c = 0;
751
  do {
752
    long attr = (dwe_ind_mem.attr)[c];
753
    set_abbrev_tag (&dwe_ind_mem, c, DW_TAG_DD_indirect_member, 0);
754
    if (attr & H_NM)
755
      set_attribute (DW_AT_name, DW_FORM_string);
756
    if (attr & H_XY)
757
      set_decl_attributes ();
758
    if (attr & H_TP)
759
      set_attribute (DW_AT_type, DW_FORM_ref_addr);
760
    if (attr & H_LC)
761
      set_attribute (DW_AT_data_member_location, DW_FORM_block1);
762
    set_attribute (0, 0);
763
    c++;
764
  }
765
  while ((dwe_ind_mem.attr)[c]);
766
 
767
  set_abbrev_tag (&dwe_proc_type, 0, DW_TAG_subroutine_type, 1);
768
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
769
  set_attribute (0, 0);
770
 
771
  set_abbrev_tag (&dwe_procv_t, 0, DW_TAG_subroutine_type, 1);
772
  set_attribute (0, 0);
773
 
774
  set_abbrev_tag (&dwe_string_t, 0, DW_TAG_string_type, 0);
775
  set_attribute (DW_AT_string_length, DW_FORM_block1);
776
  set_attribute (DW_AT_byte_size, DW_FORM_udata);
777
  set_attribute (0, 0);
778
 
779
  set_abbrev_tag (&dwe_stringc_t, 0, DW_TAG_string_type, 0);
780
  set_attribute (DW_AT_byte_size, DW_FORM_udata);
781
  set_attribute (0, 0);
782
 
783
  c = 0;
784
  do {
785
    long attr = (dwe_file_t.attr)[c];
786
    set_abbrev_tag (&dwe_file_t, c, DW_TAG_file_type, 0);
787
    if (attr & H_SP)
788
      set_attribute (DW_AT_specification, DW_FORM_ref_addr);
789
    if (attr & H_DC)
790
      set_attribute (DW_AT_declaration, DW_FORM_flag);
791
    if (attr & H_TP)
792
      set_attribute (DW_AT_type, DW_FORM_ref_addr);
793
    if (attr & H_SZ)
794
      set_attribute (DW_AT_byte_size, DW_FORM_udata);
795
    set_attribute (0, 0);
796
    c++;
797
  }
798
  while ((dwe_file_t.attr)[c]);
799
 
800
  c = 0;
801
  do {
802
    long attr = (dwe_set_t.attr)[c];
803
    set_abbrev_tag (&dwe_set_t, c, DW_TAG_set_type, 0);
804
    if (attr & H_SP)
805
      set_attribute (DW_AT_specification, DW_FORM_ref_addr);
806
    if (attr & H_DC)
807
      set_attribute (DW_AT_declaration, DW_FORM_flag);
808
    if (attr & H_TP)
809
      set_attribute (DW_AT_type, DW_FORM_ref_addr);
810
    if (attr & H_SZ)
811
      set_attribute (DW_AT_byte_size, DW_FORM_udata);
812
    set_attribute (0, 0);
813
    c++;
814
  }
815
  while ((dwe_set_t.attr)[c]);
816
 
817
  c = 0;
818
  do {
819
    long attr = (dwe_fixpt_t.attr)[c];
820
    set_abbrev_tag (&dwe_fixpt_t, c, DW_TAG_DD_fixed_point_type, 0);
821
    set_attribute (DW_AT_type, DW_FORM_ref_addr);
822
    set_attribute (DW_AT_DD_small_value, DW_FORM_indirect);
823
    if (attr & H_DF)
824
      set_attribute (DW_AT_DD_delta, DW_FORM_indirect);
825
    if (attr & H_DS)
826
      set_attribute (DW_AT_DD_digits, DW_FORM_indirect);
827
    set_attribute (0, 0);
828
    c++;
829
  }
830
  while ((dwe_fixpt_t.attr)[c]);
831
 
832
  set_abbrev_tag (&dwe_fldg_t, 0, DW_TAG_DD_floating_digits_type, 0);
833
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
834
  set_attribute (DW_AT_DD_digits, DW_FORM_indirect);
835
  set_attribute (0, 0);
836
 
837
  set_abbrev_tag (&dwe_modular_t, 0, DW_TAG_DD_modular_type, 0);
838
  set_attribute (DW_AT_type, DW_FORM_ref_addr);
839
  set_attribute (DW_AT_count, DW_FORM_indirect);
840
  set_attribute (0, 0);
841
 
842
  struct_abbrev (&dwe_task_t, DW_TAG_DD_task_type);
843
 
844
  struct_abbrev (&dwe_synch_t, DW_TAG_DD_synchronized_type);
845
 
846
  c = 0;
847
  do {
848
    long attr = (dwe_entry.attr)[c];
849
    set_abbrev_tag (&dwe_entry, c, DW_TAG_DD_entry, 1);
850
    if (attr & H_NM)
851
      set_attribute (DW_AT_name, DW_FORM_string);
852
    if (attr & H_XY)
853
      set_decl_attributes ();
854
    if (attr & H_AC)
855
      set_attribute (DW_AT_accessibility, DW_FORM_data1);
856
    if (attr & H_TP)
857
      set_attribute (DW_AT_type, DW_FORM_ref_addr);
858
    if (attr & H_RP)
859
      set_attribute (DW_AT_DD_repn, DW_FORM_indirect);
860
    set_attribute (0, 0);
861
    c++;
862
  }
863
  while ((dwe_entry.attr)[c]);
864
 
865
  set_abbrev_tag (&dwe_for_unit, 0, DW_TAG_DD_foreign_source, 0);
866
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
867
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
868
  set_attribute (DW_AT_import, DW_FORM_ref_addr);
869
  set_attribute (0, 0);
870
 
871
  set_abbrev_tag (&dwe_for_lang, 0, DW_TAG_DD_foreign_source, 0);
872
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
873
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
874
  set_attribute (DW_AT_language, DW_FORM_udata);
875
  set_attribute (0, 0);
876
 
877
  set_abbrev_tag (&dwe_call, 0, DW_TAG_DD_subroutine_call, 0);
878
  set_attribute (DW_AT_name, DW_FORM_string);
879
  set_decl_attributes ();
880
  set_attribute (DW_AT_DD_call_kind, DW_FORM_udata);
881
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
882
  set_attribute (DW_AT_location, DW_FORM_block1);
883
  set_attribute (0, 0);
884
 
885
  c = 0;
886
  do {
887
    long attr = (dwe_return.attr)[c];
888
    set_abbrev_tag (&dwe_return, c, DW_TAG_DD_subroutine_return, 0);
889
    if (attr & H_XY)
890
      set_decl_attributes ();
891
    if (attr & H_PC)
892
      set_attribute (DW_AT_low_pc, DW_FORM_addr);
893
    if (attr & H_LC)
894
      set_attribute (DW_AT_location, DW_FORM_block1);
895
    set_attribute (0, 0);
896
    c++;
897
  }
898
  while ((dwe_return.attr)[c]);
899
 
900
  c = 0;
901
  do {
902
    long attr = (dwe_destruct.attr)[c];
903
    set_abbrev_tag (&dwe_destruct, c, DW_TAG_DD_destruct, 1);
904
    set_decl_attributes ();
905
    set_attribute (DW_AT_low_pc, DW_FORM_addr);
906
    if (attr & H_TP)
907
      set_attribute (DW_AT_type, DW_FORM_ref_addr);
908
    if (attr & H_LC)
909
      set_attribute (DW_AT_location, DW_FORM_block1);
910
    if (attr & H_CV)
911
      set_attribute (DW_AT_const_value, DW_FORM_indirect);
912
    set_attribute (0, 0);
913
    c++;
914
  }
915
  while ((dwe_destruct.attr)[c]);
916
 
917
  set_abbrev_tag (&dwe_branch, 0, DW_TAG_DD_branch, 1);
918
  set_decl_attributes ();
919
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
920
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
921
  set_attribute (0, 0);
922
 
923
  set_abbrev_tag (&dwe_branch_0, 0, DW_TAG_DD_branch, 0);
924
  set_decl_attributes ();
925
  set_attribute (0, 0);
926
 
927
  set_abbrev_tag (&dwe_break, 0, DW_TAG_DD_breakpoint, 0);
928
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
929
  set_attribute (0, 0);
930
 
931
  set_abbrev_tag (&dwe_test, 0, DW_TAG_DD_test, 0);
932
  set_decl_attributes ();
933
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
934
  set_attribute (DW_AT_DD_cont_pc, DW_FORM_addr);
935
  set_attribute (DW_AT_DD_jump_pc, DW_FORM_addr);
936
  set_attribute (0, 0);
937
 
938
  set_abbrev_tag (&dwe_test_0, 0, DW_TAG_DD_test, 0);
939
  set_decl_attributes ();
940
  set_attribute (0, 0);
941
 
942
  set_abbrev_tag (&dwe_jump, 0, DW_TAG_DD_jump, 0);
943
  set_decl_attributes ();
944
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
945
  set_attribute (DW_AT_DD_jump_pc, DW_FORM_addr);
946
  set_attribute (0, 0);
947
 
948
  set_abbrev_tag (&dwe_jump_0, 0, DW_TAG_DD_jump, 0);
949
  set_decl_attributes ();
950
  set_attribute (0, 0);
951
 
952
  set_abbrev_tag (&dwe_lj, 0, DW_TAG_DD_long_jump, 0);
953
  set_decl_attributes ();
954
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
955
  set_attribute (DW_AT_location, DW_FORM_block1);
956
  set_attribute (0, 0);
957
 
958
  set_abbrev_tag (&dwe_lj_0, 0, DW_TAG_DD_long_jump, 0);
959
  set_decl_attributes ();
960
  set_attribute (0, 0);
961
 
962
  c = 0;
963
  do {
964
    long attr = (dwe_throw.attr)[c];
965
    set_abbrev_tag (&dwe_throw, c, DW_TAG_DD_throw, 0);
966
    if (attr & H_XY)
967
      set_decl_attributes ();
968
    if (attr & H_TP)
969
      set_attribute (DW_AT_type, DW_FORM_ref_addr);
970
    if (attr & H_LC)
971
      set_attribute (DW_AT_location, DW_FORM_block1);
972
    if (attr & H_CV)
973
      set_attribute (DW_AT_const_value, DW_FORM_indirect);
974
    set_attribute (0, 0);
975
    c++;
976
  }
977
  while ((dwe_throw.attr)[c]);
978
 
979
  set_abbrev_tag (&dwe_barrier, 0, DW_TAG_DD_entry_barrier, 0);
980
  set_decl_attributes ();
981
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
982
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
983
  set_attribute (0, 0);
984
 
985
  set_abbrev_tag (&dwe_select, 0, DW_TAG_DD_select, 1);
986
  set_decl_attributes ();
987
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
988
  set_attribute (0, 0);
989
 
990
  set_abbrev_tag (&dwe_accept, 0, DW_TAG_DD_accept, 0);
991
  set_decl_attributes ();
992
  set_attribute (DW_AT_DD_alt, DW_FORM_flag);
993
  set_attribute (DW_AT_DD_entry_spec, DW_FORM_ref_addr);
994
  set_attribute (0, 0);
995
 
996
  set_abbrev_tag (&dwe_accept_c, 0, DW_TAG_DD_accept, 1);
997
  set_decl_attributes ();
998
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
999
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
1000
  set_attribute (DW_AT_DD_alt, DW_FORM_flag);
1001
  set_attribute (DW_AT_DD_entry_spec, DW_FORM_ref_addr);
1002
  set_attribute (0, 0);
1003
 
1004
  set_abbrev_tag (&dwe_rts, 0, DW_TAG_DD_rts_call, 0);
1005
  set_decl_attributes ();
1006
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
1007
  set_attribute (DW_AT_DD_alt, DW_FORM_flag);
1008
  set_attribute (DW_AT_DD_call_kind, DW_FORM_udata);
1009
  set_attribute (0, 0);
1010
 
1011
  set_abbrev_tag (&dwe_rts_en, 0, DW_TAG_DD_rts_call, 0);
1012
  set_decl_attributes ();
1013
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
1014
  set_attribute (DW_AT_DD_alt, DW_FORM_flag);
1015
  set_attribute (DW_AT_DD_entry_spec, DW_FORM_ref_addr);
1016
  set_attribute (DW_AT_DD_call_kind, DW_FORM_udata);
1017
  set_attribute (0, 0);
1018
 
1019
  set_abbrev_tag (&dwe_sel_alt, 0, DW_TAG_DD_select_alternative, 1);
1020
  set_decl_attributes ();
1021
   set_attribute (DW_AT_DD_alt_kind, DW_FORM_udata);
1022
  set_attribute (DW_AT_DD_alt_no, DW_FORM_indirect);
1023
  set_attribute (0, 0);
1024
 
1025
  set_abbrev_tag (&dwe_sel_alt_c, 0, DW_TAG_DD_select_alternative, 1);
1026
  set_decl_attributes ();
1027
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
1028
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
1029
  set_attribute (DW_AT_DD_alt_kind, DW_FORM_udata);
1030
  set_attribute (DW_AT_DD_alt_no, DW_FORM_indirect);
1031
  set_attribute (0, 0);
1032
 
1033
  set_abbrev_tag (&dwe_sel_guard, 0, DW_TAG_DD_select_guard, 1);
1034
  set_decl_attributes ();
1035
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
1036
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
1037
  set_attribute (0, 0);
1038
 
1039
  set_abbrev_tag (&dwe_asynchsel, 0, DW_TAG_DD_asynchronous_select, 1);
1040
  set_decl_attributes ();
1041
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
1042
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
1043
  set_attribute (0, 0);
1044
 
1045
  set_abbrev_tag (&dwe_trigger, 0, DW_TAG_DD_triggering_alternate, 1);
1046
  set_decl_attributes ();
1047
  set_attribute (DW_AT_DD_alt_kind, DW_FORM_udata);
1048
  set_attribute (0, 0);
1049
 
1050
  set_abbrev_tag (&dwe_trigger_c, 0, DW_TAG_DD_triggering_alternate, 1);
1051
  set_decl_attributes ();
1052
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
1053
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
1054
  set_attribute (DW_AT_DD_alt_kind, DW_FORM_udata);
1055
  set_attribute (0, 0);
1056
 
1057
  set_abbrev_tag (&dwe_abort_pt, 0, DW_TAG_DD_abortable_part, 0);
1058
  set_decl_attributes ();
1059
  set_attribute (0, 0);
1060
 
1061
  set_abbrev_tag (&dwe_abort_ptc, 0, DW_TAG_DD_abortable_part, 1);
1062
  set_decl_attributes ();
1063
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
1064
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
1065
  set_attribute (0, 0);
1066
 
1067
  set_abbrev_tag (&dwe_requeue, 0, DW_TAG_DD_requeue, 1);
1068
  set_decl_attributes ();
1069
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
1070
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
1071
  set_attribute (DW_AT_DD_entry_spec, DW_FORM_ref_addr);
1072
  set_attribute (DW_AT_DD_abort, DW_FORM_flag);
1073
  set_attribute (0, 0);
1074
 
1075
  set_abbrev_tag (&dwe_unknown_t, 0, DW_TAG_DD_incomplete_type, 0);
1076
  set_attribute (0, 0);
1077
 
1078
  set_abbrev_tag (&dwe_span, 0, DW_TAG_DD_source_span, 1);
1079
  set_attribute (0, 0);
1080
 
1081
  set_abbrev_tag (&dwe_span_strt, 0, DW_TAG_DD_source_start, 0);
1082
  set_decl_attributes ();
1083
  set_attribute (0, 0);
1084
 
1085
  set_abbrev_tag (&dwe_span_end, 0, DW_TAG_DD_source_end, 0);
1086
  set_decl_attributes ();
1087
  set_attribute (0, 0);
1088
 
1089
  set_abbrev_tag (&dwe_absent, 0, DW_TAG_DD_absent_code, 1);
1090
  set_attribute (DW_AT_DD_optimisation_kind, DW_FORM_udata);
1091
  set_attribute (0, 0);
1092
 
1093
  set_abbrev_tag (&dwe_absent_r, 0, DW_TAG_DD_absent_code, 1);
1094
  set_attribute (DW_AT_DD_optimisation_kind, DW_FORM_udata);
1095
  set_attribute (DW_AT_DD_optim_ref, DW_FORM_ref_addr);
1096
  set_attribute (0, 0);
1097
 
1098
  set_abbrev_tag (&dwe_absent_x, 0, DW_TAG_DD_absent_code, 0);
1099
  set_attribute (DW_AT_DD_optimisation_kind, DW_FORM_udata);
1100
  set_decl_attributes ();
1101
  set_attribute (0, 0);
1102
 
1103
  set_abbrev_tag (&dwe_absent_xr, 0, DW_TAG_DD_absent_code, 0);
1104
  set_attribute (DW_AT_DD_optimisation_kind, DW_FORM_udata);
1105
  set_attribute (DW_AT_DD_optim_ref, DW_FORM_ref_addr);
1106
  set_decl_attributes ();
1107
  set_attribute (0, 0);
1108
 
1109
  set_abbrev_tag (&dwe_displaced, 0, DW_TAG_DD_absent_code, 0);
1110
  set_attribute (DW_AT_DD_optim_ref, DW_FORM_ref_addr);
1111
  set_attribute (0, 0);
1112
 
1113
  set_abbrev_tag (&dwe_displ_x, 0, DW_TAG_DD_absent_code, 0);
1114
  set_attribute (DW_AT_DD_optim_ref, DW_FORM_ref_addr);
1115
  set_decl_attributes ();
1116
  set_attribute (0, 0);
1117
 
1118
  set_abbrev_tag (&dwe_moved, 0, DW_TAG_DD_moved_code, 1);
1119
  set_attribute (DW_AT_DD_optimisation_kind, DW_FORM_udata);
1120
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
1121
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
1122
  set_attribute (0, 0);
1123
 
1124
  set_abbrev_tag (&dwe_moved_r, 0, DW_TAG_DD_moved_code, 1);
1125
  set_attribute (DW_AT_DD_optimisation_kind, DW_FORM_udata);
1126
  set_attribute (DW_AT_DD_optim_ref, DW_FORM_ref_addr);
1127
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
1128
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
1129
  set_attribute (0, 0);
1130
 
1131
  set_abbrev_tag (&dwe_moved_x, 0, DW_TAG_DD_moved_code, 1);
1132
  set_attribute (DW_AT_DD_optimisation_kind, DW_FORM_udata);
1133
  set_attribute (0, 0);
1134
 
1135
  set_abbrev_tag (&dwe_moved_xr, 0, DW_TAG_DD_moved_code, 1);
1136
  set_attribute (DW_AT_DD_optimisation_kind, DW_FORM_udata);
1137
  set_attribute (DW_AT_DD_optim_ref, DW_FORM_ref_addr);
1138
  set_attribute (0, 0);
1139
 
1140
  set_abbrev_tag (&dwe_optim, 0, DW_TAG_DD_optimisation_block, 1);
1141
  set_attribute (DW_AT_DD_optimisation_kind, DW_FORM_udata);
1142
  set_attribute (DW_AT_low_pc, DW_FORM_addr);
1143
  set_attribute (DW_AT_high_pc, DW_FORM_addr);
1144
  set_attribute (DW_AT_DD_obj_noassgn, DW_FORM_block2);
1145
  set_attribute (DW_AT_DD_obj_assgn, DW_FORM_block2);
1146
  set_attribute (0, 0);
1147
 
1148
 
1149
  out8 (); outn ((long)0); d_outnl ();
1150
  exit_section ();
1151
  return;
1152
}