Lines Matching refs:die

35 	Dwarf_Die die;
39 if ((die = calloc(1, sizeof(struct _Dwarf_Die))) == NULL) {
44 STAILQ_INIT(&die->die_attr);
46 *ret_die = die;
56 Dwarf_Die die;
64 if ((ret = _dwarf_die_alloc(dbg, &die, error)) != DW_DLE_NONE)
67 die->die_offset = offset;
68 die->die_abnum = abnum;
69 die->die_ab = ab;
70 die->die_cu = cu;
71 die->die_dbg = cu->cu_dbg;
74 *diep = die;
79 /* Find die at offset 'off' within the same CU. */
81 _dwarf_die_find(Dwarf_Die die, Dwarf_Unsigned off)
90 cu = die->die_cu;
91 dbg = die->die_dbg;
110 Dwarf_Die die;
118 die = NULL;
141 if ((ret = _dwarf_die_add(cu, die_offset, abnum, ab, &die,
147 dwarf_size, cu, die, ad, ad->ad_form, 0,
152 die->die_next_off = offset;
154 dwarf_dealloc(dbg, die, DW_DLA_DIE);
160 *ret_die = die;
169 _dwarf_die_link(Dwarf_P_Die die, Dwarf_P_Die parent, Dwarf_P_Die child,
174 assert(die != NULL);
179 if (die->die_parent) {
180 if (die->die_parent != parent) {
181 if (die->die_parent->die_child == die)
182 die->die_parent->die_child = NULL;
183 die->die_parent = NULL;
195 die->die_parent = parent;
204 last_child->die_right = die;
205 die->die_left = last_child;
207 parent->die_child = die;
213 if (die->die_child) {
214 if (die->die_child != child) {
215 die->die_child->die_parent = NULL;
216 die->die_child = NULL;
221 die->die_child = child;
222 child->die_parent = die;
228 if (die->die_left) {
229 if (die->die_left != left_sibling) {
230 die->die_left->die_right = NULL;
231 die->die_left = NULL;
236 die->die_left = left_sibling;
237 left_sibling->die_right = die;
243 if (die->die_right) {
244 if (die->die_right != right_sibling) {
245 die->die_right->die_left = NULL;
246 die->die_right = NULL;
251 die->die_right = right_sibling;
252 right_sibling->die_left = die;
278 Dwarf_P_Die die, int pass2, Dwarf_Error *error)
297 if (die->die_child && die->die_right) {
298 if (_dwarf_attr_find(die, DW_AT_sibling) == NULL)
299 (void) dwarf_add_AT_reference(dbg, die, DW_AT_sibling,
300 die->die_right, error);
306 die->die_ab = NULL;
308 if (die->die_tag != ab->ab_tag)
310 if (ab->ab_children == DW_CHILDREN_no && die->die_child != NULL)
313 die->die_child == NULL)
315 at = STAILQ_FIRST(&die->die_attr);
330 die->die_ab = ab;
338 if (die->die_ab == NULL) {
339 ret = _dwarf_abbrev_add(cu, ++cu->cu_abbrev_cnt, die->die_tag,
340 die->die_child != NULL ? DW_CHILDREN_yes : DW_CHILDREN_no,
344 STAILQ_FOREACH(at, &die->die_attr, at_next) {
350 die->die_ab = ab;
353 die->die_offset = ds->ds_size;
359 &ds->ds_size, die->die_ab->ab_entry, error);
366 ret = _dwarf_attr_gen(dbg, ds, drs, cu, die, pass2, error);
371 if (die->die_child != NULL) {
372 ret = _dwarf_die_gen_recursive(dbg, cu, drs, die->die_child,
379 if (die->die_right != NULL) {
380 ret = _dwarf_die_gen_recursive(dbg, cu, drs, die->die_right,
387 if (die->die_right == NULL) {
403 Dwarf_Die die;
409 die = dbg->dbgp_root_die;
416 RCHECK(_dwarf_add_AT_dataref(dbg, die, DW_AT_stmt_list, 0, 0,
419 RCHECK(_dwarf_die_gen_recursive(dbg, cu, drs, die, 0, error));
422 RCHECK(_dwarf_die_gen_recursive(dbg, cu, drs, die, 1, error));
444 Dwarf_P_Die die, tdie;
449 STAILQ_FOREACH_SAFE(die, &dbg->dbgp_dielist, die_pro_next, tdie) {
450 STAILQ_FOREACH_SAFE(at, &die->die_attr, at_next, tat) {
451 STAILQ_REMOVE(&die->die_attr, at, _Dwarf_Attribute,
455 free(die);