Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 218641
b: refs/heads/master
c: 4046b8b
h: refs/heads/master
i:
  218639: 9e358ef
v: v3
  • Loading branch information
Masami Hiramatsu authored and Arnaldo Carvalho de Melo committed Oct 21, 2010
1 parent 5191882 commit f05d4e1
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 9 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f4bc6bb2d562703eafc895c37e7be20906de139d
refs/heads/master: 4046b8bb5ffae9ee916e504cdadee804f10e0c56
25 changes: 17 additions & 8 deletions trunk/tools/perf/util/probe-finder.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,26 +160,35 @@ static bool die_compare_name(Dwarf_Die *dw_die, const char *tname)
return name ? (strcmp(tname, name) == 0) : false;
}

/* Get type die */
static Dwarf_Die *die_get_type(Dwarf_Die *vr_die, Dwarf_Die *die_mem)
{
Dwarf_Attribute attr;

if (dwarf_attr_integrate(vr_die, DW_AT_type, &attr) &&
dwarf_formref_die(&attr, die_mem))
return die_mem;
else
return NULL;
}

/* Get type die, but skip qualifiers and typedef */
static Dwarf_Die *die_get_real_type(Dwarf_Die *vr_die, Dwarf_Die *die_mem)
{
Dwarf_Attribute attr;
int tag;

do {
if (dwarf_attr(vr_die, DW_AT_type, &attr) == NULL ||
dwarf_formref_die(&attr, die_mem) == NULL)
return NULL;

tag = dwarf_tag(die_mem);
vr_die = die_mem;
vr_die = die_get_type(vr_die, die_mem);
if (!vr_die)
break;
tag = dwarf_tag(vr_die);
} while (tag == DW_TAG_const_type ||
tag == DW_TAG_restrict_type ||
tag == DW_TAG_volatile_type ||
tag == DW_TAG_shared_type ||
tag == DW_TAG_typedef);

return die_mem;
return vr_die;
}

static bool die_is_signed_type(Dwarf_Die *tp_die)
Expand Down

0 comments on commit f05d4e1

Please sign in to comment.