summaryrefslogtreecommitdiff
path: root/gdb/ChangeLog.intercu
blob: 36dad0de076fc6065055204ae1b61d50bcd82485 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
2004-04-01  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (struct dwarf2_cu): Add has_form_ref_addr and
	has_namespace_info.
	(dwarf2_read_abbrevs): Set the new flags.  Change return type back
	to void.  Update comments.
	(dwarf2_build_psymtabs_hard): Update call to dwarf2_read_abbrevs.
	Use new has_form_ref_addr flag.  Update call to
	scan_partial_symbols.
	(scan_partial_symbols, add_partial_symbol, add_partial_structure)
	(add_partial_enumeration, add_partial_namespace): Remove
	have_namespace_info argument.  Use new has_namespace_info CU flag.
	Update calls to changed functions.

2004-03-14  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (read_structure_type): Renamed from
	read_structure_scope.
	(process_enumeration_scope): Renamed from read_enumeration_scope.
	(add_partial_structure, process_die, new_symbol)
	(read_type_die): Update calls and comments.

2004-02-24  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (struct comp_unit_head): Remove dwarf2_abbrevs array.
	(struct dwarf2_cu): Add dwarf2_abbrevs pointer.  Update comment about
	comp_unit_head.
	(dwarf2_free_abbrev_table): Renamed from dwarf2_empty_abbrev_table.
	Clear the pointer abbrev table pointer.
	(dwarf2_build_psymtabs_hard, load_comp_unit, load_full_comp_unit):
	Update calls.
	(dwarf2_read_abbrevs): Update for moved dwarf2_abbrevs pointer.
	Allocate the hash table from the obstack.
	(dwarf2_lookup_abbrev): Update for moved dwarf2_abbrevs pointer.

2004-02-24  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (skip_leb128, peek_die_abbrev, skip_one_die)
	(skip_children, locate_pdi_sibling): Update comments and
	clean up.

2004-02-24  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (free_one_comp_unit): Update signature so it can be
	used as a cleanup.  Clear the per_cu pointer.  Add some comments.
	(free_one_cached_comp_unit): Update signature so it can be used
	as a cleanup.  Remove unused argument.
	(dwarf2_build_psymtabs_hard): Update call to
	free_one_cached_comp_unit.  Don't free the obstack here.
	(process_queue): Keep dwarf2_queue up to date as we remove items
	from the queue.
	(dwarf2_release_queue): New function.
	(psymtab_to_symtab_1): Use cleanups.
	(load_full_comp_unit): Likewise.
	(free_comp_units_worker): Remove clearing of the cu pointer.
	(clear_per_cu_pointer): Also free the partial_die_obstack.  Update
	comments.

2004-02-23  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (MAX_CACHE_AGE): Lower to 5.
	(struct dwarf2_cu): Add dependencies and mark fields.
	(free_one_comp_unit): New function, broken out from
	free_comp_units_worker.
	(dwarf2_add_dependence, dwarf2_clear_marks, dwarf2_mark)
	(dwarf2_mark_helper): New functions.
	(psymtab_to_symtab_1): Call free_one_comp_unit.  Re-enable
	aging.
	(read_full_die): Call dwarf2_add_dependence.
	(free_comp_units_worker): Call free_one_comp_unit.  Use
	marking to free old comp units.

2004-02-23  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (struct dwarf2_cu): Add dies.
	(struct dwarf2_per_cu_data): Shrink length field to add new
	queued flag.
	(make_cleanup_free_die_list, do_free_die_list_cleanup): Remove.
	(dwarf_alloc_block): Take a dwarf2_cu argument.  Allocate
	blocks on the partial_die_obstack.
	(dwarf2_find_comp_unit_psymtab, struct dwarf2_queue_item)
	(dwarf2_queue, queue_comp_unit, process_queue): New.
	(load_full_comp_unit, process_full_comp_unit): New functions,
	split from psymtab_to_symtab_1.
	(psymtab_to_symtab_1): Remove.
	(dwarf2_build_psymtabs_hard): Initialize the whole dwarf2_cu
	structure.  Cache the psymtab if we have a per_cu structure.
	(load_comp_unit): Initialize the whole dwarf2_cu structure.
	(dwarf2_psymtab_to_symtab): Restore dwarf2_per_objfile here.
	(read_full_die): Queue compilation units for references.
	(read_attribute_value): Update calls to dwarf_alloc_block.
	(follow_die_ref): Follow inter-complation-unit references.
	(free_comp_units_worker): Free the die list.
	(get_die_type): Take the hash table as an argument.
	(reset_die_and_siblings_types): Don't try to restore types
	if none were saved.

2004-02-23  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (struct dwarf2_per_objfile_data): Add comment
	for cu_tree.  Add read_in_chain.
	(age_cached_comp_units): New function.
	(clear_per_cu_pointer): Clear the pointer ourself.  Call
	age_cached_comp_units.
	(free_cached_comp_units, free_one_cached_comp_unit): Update call to
	free_comp_units_worker.
	(dwarf2_build_psymtabs_hard): Use the per-objfile read_in_chain.
	(find_partial_die): Likewise.
	(free_comp_units_worker): Don't try to clear the per_cu pointer
	for the list head.  Remove now-unused argument.  Use the per-objfile
	read_in_chain.

2004-02-23  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (dwarf2_read_abbrevs): Return 1 for DW_FORM_indirect
	also.

2004-02-23  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (dwarf2_read_abbrevs): Return 1 iff we saw any
	DW_FORM_ref_addr tags.
	(create_comp_unit_tree): Add prototype.  Take an objfile instead
	of a compilation unit.
	(dwarf2_build_psymtabs_hard): Build the compilation unit tree
	as soon as we find an inter-CU reference.  Update call to
	create_comp_unit_tree.
	(dwarf2_find_containing_comp_unit): Don't create the tree here.
	(psymtab_to_symtab_1): Update to support no tree having been built.
	(set_die_type): Likewise.

2004-02-23  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (dwarf2_per_objfile_data): New.
	(struct dwarf2_per_objfile_data): New.
	(dwarf2_per_objfile): New.
	(dwarf_info_size, dwarf_abbrev_size, dwarf_line_size)
	(dwarf_pubnames_size, dwarf_aranges_size, dwarf_loc_size)
	(dwarf_macinfo_size, dwarf_str_size, dwarf_ranges_size)
	(dwarf_frame_size, dwarf_eh_frame_size, dwarf_info_buffer)
	(dwarf_abbrev_buffer, dwarf_line_buffer, dwarf_str_buffer)
	(dwarf_macinfo_buffer, dwarf_ranges_buffer, dwarf_loc_buffer):
	Replace with macros.
	(dwarf2_cu_tree): Remove.
	(struct dwarf2_pinfo): Remove per-objfile members.
	(DWARF_INFO_SIZE, DWARF_ABBREV_SIZE, DWARF_LINE_SIZE)
	(DWARF_LOC_SIZE, DWARF_MACINFO_SIZE, DWARF_STR_SIZE)
	(DWARF_RANGES_SIZE, DWARF_INFO_BUFFER)
	(DWARF_ABBREV_BUFFER, DWARF_LINE_BUFFER, DWARF_STR_BUFFER)
	(DWARF_MACINFO_BUFFER, DWARF_RANGES_BUFFER, DWARF_LOC_BUFFER):
	Remove macros.
	(dwarf2_has_info): Take an objfile argument.  Allocate per-objfile
	data.
	(dwarf2_build_psymtabs_hard): Remove use of removed macros.  Fetch
	cu_tree from dwarf2_per_objfile.
	(create_comp_unit_tree): Save cu_tree in dwarf2_per_objfile.
	(psymtab_to_symtab_1): Restore per-objfile data pointer.  Remove use
	of removed macros.
	(dwarf2_find_containing_comp_unit): Fetch cu_tree from
	dwarf2_per_objfile.
	(_initialize_dwarf2_read): Register dwarf2_per_objfile_data instead
	of dwarf2_cu_tree.
	* symfile.h (dwarf2_has_info): Update prototype.
	* coffread.c (coff_symfile_read): Update call to dwarf2_has_info.
	* elfread.c (elf_symfile_read): Likewise.

2004-02-23  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (struct dwarf2_per_cu_data): Add psymtab member.
	(struct dwarf2_pinfo): Add dwarf_info_size and type_hash.
	Rearrange and update comments.
	(DWARF_INFO_SIZE): Define.
	(set_die_type, get_die_type, reset_die_and_siblings_types): New
	fucntions.
	(dwarf2_build_psymtabs_hard): Save dwarf_info_size.  Initialize
	type_hash.
	(psymtab_to_symtab_1): Restore dwarf_info_size.  Create per_cu
	data for the current compilation unit.
	(read_structure_scope, read_enumeration_type, read_array_type)
	(read_tag_pointer_type, read_tag_ptr_to_member_type)
	(read_tag_reference_type, read_tag_const_type)
	(read_tag_volatile_type, read_tag_string_type)
	(read_subroutine_type, read_typedef, read_base_type): Call
	set_die_type.
	(read_subrange_type): Likewise.  Use dwarf2_attr_with_cu, since
	array bounds may be DIE references.
	(struct dwarf2_offset_and_type, offset_and_type_hash)
	(offset_and_type_eq): New.

2004-02-23  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (REF_HASH_SIZE): Move above struct dwarf2_cu.
	(struct dwarf2_cu): Add die_ref_table.
	(die_ref_table): Delete static variable.
	(store_in_ref_table): Take a comp unit argument and use its
	die_ref_table.
	(dwarf2_empty_hash_tables): Likewise.
	(read_comp_unit): Update call to dwarf2_empty_hash_tables.
	(read_die_and_children): Update call to store_in_ref_table.
	(follow_die_ref): Use the comp unit's die_ref_table.

2004-02-23  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (read_structure_scope): Don't create a symbol
	or call process_die.  Return immediately if die->type is set.
	Call read_type_die before dwarf2_add_member_fn.
	(process_structure_scope): New function.
	(read_enumeration_type, read_enumeration_scope): New functions,
	broken out from read_enumeration.  Don't create the enumeration
	type if it has already been created.
	(read_enumeration): Removed.
	(process_die): Call process_structure_scope, read_enumeration_type,
	and read_enumeration_scope.  Just call new_symbol for base and
	subrange types.  Add a comment about other type dies.
	(read_type_die): Call read_enumeration_type.

2004-02-22  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (dwarf2_attr_with_cu): New function, renamed
	from dwarf2_attr.  Also return the compilation unit associated
	with the attribute if we have followed a reference.  Complain
	if we return a reference attribute and the caller does not want
	the target compilation unit.
	(dwarf2_attr): Call dwarf2_attr_with_cu.
	(die_specification, dwarf2_extension): Also return a compilation
	unit.
	(follow_die_ref): Take attribute and compilation unit arguments.
	Call dwarf2_get_ref_die_offset.  Also return the target
	compilation unit.
	(read_func_scope, read_structure_scope): Update calls to
	die_specification.  Use the result.
	(read_namespace): Update call to dwarf2_extension.
	(namespace_name): Likewise.  Use the result.
	(new_symbol): Call dwarf2_attr_with_cu to check for DIE type.
	(die_type): Likewise.  Update call to follow_die_ref.  Use the
	results.
	(dwarf2_add_member_fn, read_structure_scope): Likewise for
	DW_AT_containing_type.
	(die_containing_type): Likewise.
	(die_is_declaration): Likewise for DW_AT_specification.

2004-02-22  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (MAX_CACHE_AGE): Define.
	(struct dwarf2_cu): Add last_used counter.
	(free_comp_units_worker): New function, based on
	clear_per_cu_pointer.  Support aging.
	(clear_per_cu_pointer): Use it.
	(free_cached_comp_units, free_one_cached_comp_unit): New functions.
	(dwarf2_build_psymtabs_hard): Keep read_in_chain across iterations.
	Free all cached comp units after building psymtabs.  Free any cached
	copy of a comp unit before building a psymtab for it.
	(find_partial_die): Clear the last_used counter.

2004-02-22  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (partial_die_full_name): Always return NULL or
	malloc'd memory.  Don't try to free real_parent->full_name.

2004-02-22  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (struct dwarf2_cu): Add read_in_chain and per_cu.
	(dwarf2_cu_tree): New variable.
	(struct dwarf2_per_cu_data): New type.
	(struct partial_die_info): Remove abbrev.  Make tag a bitfield.  Add
	full_name_set.
	(load_partial_dies): Take a flag indicating whether we are building
	a psymtab.
	(find_partial_die_in_comp_unit): Rename frome find_partial_die.
	(find_partial_die): New function to support inter-CU references.
	Return the CU of the found DIE.
	(splay_tree_obstack_allocate): Remove #if 0.
	(partial_read_comp_unit_head): New function, broken out from
	dwarf2_build_psymtabs_hard.
	(dwarf2_build_psymtabs_hard): Remove unused variable abbrev_ptr.
	Add the current CU to the splay tree if the tree already exists.
	Update call to load_partial_dies.
	(partial_die_full_name): Rewrite to support inter-CU references.
	(add_partial_symbol): Check and set pdi->full_name_set.
	(fixup_partial_die): Support inter-CU references.
	(dwarf2_find_containing_comp_unit, clear_per_cu_pointer)
	(load_comp_unit, create_comp_unit_tree, _initialize_dwarf2_read): New
	functions.

2004-02-22  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (partial_die_full_name): Remove allocate argument,
	always use concat.
	(add_partial_symbol): Copy the name from the psymbol.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (struct partial_die_info): Add full_name.
	(scan_partial_symbols, add_partial_symbol, add_partial_structure)
	(add_partial_enumeration): Change namespace argument to
	have_namespace_info flag.  Move DW_TAG_namespace handling to
	add_partial_symbol.  Update comments.
	(pdi_needs_namespace): Remove namespace argument.  Handle
	DW_TAG_namespace.
	(partial_determine_prefix, partial_determine_prefix_aux): Remove.
	(dwarf2_build_psymtabs_hard): Update call to scan_partial_symbols.
	(partial_die_full_name): New function.
	(load_partial_die): Correct comment formatting.  Don't handle
	DW_TAG_enumeration_type.
	(load_partial_dies): Correct comment formatting.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (load_partial_dies): Check for NULL name before
	adding types.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (maybe_specification_partial_die): Removed.
	(is_type_tag_for_partial): Renamed from is_type_tag.  Remove
	some tags.
	(load_partial_dies): Call is_type_tag_for_partial.  Handle simple
	DIEs early.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (scan_partial_symbols): Don't return anything.  Take
	a DIE argument instead of an info_ptr.
	(add_partial_namespace, add_partial_structure)
	add_partial_enumeration): Likewise.
	(load_partial_dies): Return the first interesting DIE.
	Do not add DIEs to the hash table if we aren't going to look them
	up.
	(dwarf2_build_psymtabs_hard): Adjust call to scan_partial_symbols.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (peek_die_abbrev): Add prototype.
	(load_partial_die): Take an abbrev and its uleb128 length as
	arguments.
	(dwarf2_build_psymtabs_hard): Adjust call to load_partial_die.
	(load_partial_dies): Likewise.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (splay_tree_obstack_allocate): Disable.
	(add_partial_symbol): Fix a warning.
	(fixup_partial_die): Recurse if necessary.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (partial_determine_prefix)
	(partial_determine_prefix_aux): New functions.
	(add_partial_symbol): Call partial_determine_prefix.
	(add_partial_structure): Remove workaround for DW_AT_specification.
	(load_partial_die): Save DW_AT_extension.
	(determine_prefix_aux): Reuse the return value of dwarf2_name.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (load_partial_dies): Follow unions.  Follow
	aggregates for all non-C languages.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (dwarf2_build_psymtabs_hard): Estimate the initial
	size of the hash table.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (struct dwarf2_cu): Add abbrev_obstack.
	(struct abbrev_info): Shorten two int flags.
	(dwarf_alloc_abbrev): Take a CU argument.
	(dwarf2_build_psymtabs_hard): Call dwarf2_empty_abbrev_table
	each time through the loop.  Update cleanup argument.
	(psymtab_to_symtab_1): Update cleanup argument.
	(dwarf2_read_abbrevs, dwarf2_alloc_abbrev): Allocate on the
	abbrev_obstack.
	(dwarf2_empty_abbrev_table): Just call obstack_free.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (hashtab_h): Add.
	(dwarf2read.o): Update dependencies.
	* dwarf2read.c: Include "hashtab.h".
	(struct dwarf2_cu): Change partial_dies to an htab_t.
	(hash_obstack_allocate, partial_die_hash, partial_die_eq): New
	functions.
	(dwarf2_build_psymtabs_hard): Call htab_create_alloc_ex.
	(load_partial_dies): Call htab_find_slot_with_hash.
	(find_partial_die): Call htab_find_with_hash.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (struct partial_die_info): Use bitfields and
	rearrange members for packing.  Replace spec_attr with spec_offset.
	(load_partial_dies): Only follow structures for C++.
	(load_partial_die): Use memset.  Save specification attributes
	only as offsets.
	(fixup_partial_die): Adjust to use spec_offset.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (struct dwarf2_cu): Add partial_die_obstack.
	(splay_tree_obstack_allocate, splay_tree_obstack_deallocate): New
	functions.
	(dwarf2_build_psymtabs_hard): Use splay_tree_new_with_allocator
	and obstack_free to manage partial_dies.
	(load_partial_dies): Allocate partial DIEs on the obstack.  Don't
	initialize the splay tree here.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (skip_leb128, peek_die_abbrev, skip_one_die)
	(skip_children): New functions.
	(locate_pdi_sibling): Call skip_children.
	(load_partial_dies): Use peek_die_abbrev and skip_one_die.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (find_partial_die, fixup_partial_die): New functions,
	broken out from read_partial_die.
	(read_partial_die): Remove function.
	(dwarf2_build_psymtabs_hard): Update comments.
	(scan_partial_symbols): Use the new functions.  Reduce copying of
	partial DIEs.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c: Include "splay-tree.h".
	(struct dwarf2_cu): Add splay tree for partial DIEs.
	(struct partial_die_info): Move after struct attribute.
	Add has_specification, spec_attr, die_parent, die_child,
	and die_sibling fields.
	(load_partial_dies): New function.
	(load_partial_die): New function, broken out from read_partial_die.
	Correct setting of part_die->offset.  Save any specification
	attributes for later.
	(read_partial_die): Look up DIEs in the splay tree.
	(dwarf2_build_psymtabs_hard): Initialize partial_dies.  Call
	load_partial_die to read in the compilation unit DIE.  Call
	load_partial_dies.  Free the splay tree after use.
	(scan_partial_symbols): Follow the die_sibling chain.
	(add_partial_structure): Use die_child and die_sibling instead of
	read_partial_die and locate_pdi_sibling.
	(add_partial_enumeration): Likewise.
	(locate_pdi_sibling): Use load_partial_die instead of
	read_partial_die.
	(is_type_tag): New function.

	* Makefile.in (dwarf2read.o): Update dependencies.