summaryrefslogtreecommitdiff
path: root/usr/src/tools/ctf/cvt/dwarf.c
diff options
context:
space:
mode:
authorsethg <none@none>2006-09-14 19:25:58 -0700
committersethg <none@none>2006-09-14 19:25:58 -0700
commit626fe1bff7bfe11a03b96445322f7173e4bae13a (patch)
tree84c8d0a7feaff8092ae6ae0ca8d9552c5ce5aa80 /usr/src/tools/ctf/cvt/dwarf.c
parent946376ad0ef4c272ecb63a68cd3e28a42d973198 (diff)
downloadillumos-joyent-626fe1bff7bfe11a03b96445322f7173e4bae13a.tar.gz
6288545 GCC-compiled objects' CTF offsets wrong for some bitfields
Diffstat (limited to 'usr/src/tools/ctf/cvt/dwarf.c')
-rw-r--r--usr/src/tools/ctf/cvt/dwarf.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/usr/src/tools/ctf/cvt/dwarf.c b/usr/src/tools/ctf/cvt/dwarf.c
index 32bcc77286..961f7e6610 100644
--- a/usr/src/tools/ctf/cvt/dwarf.c
+++ b/usr/src/tools/ctf/cvt/dwarf.c
@@ -221,7 +221,7 @@ tdesc_bitsize(tdesc_t *tdp)
case UNION:
case ENUM:
case POINTER:
- return (tdp->t_size);
+ return (tdp->t_size * NBBY);
case FORWARD:
return (0);
@@ -983,8 +983,8 @@ die_sou_create(dwarf_t *dw, Dwarf_Die str, Dwarf_Off off, tdesc_t *tdp,
#ifdef _BIG_ENDIAN
ml->ml_offset += bitoff;
#else
- ml->ml_offset += (dw->dw_ptrsz * NBBY - bitoff -
- ml->ml_size);
+ ml->ml_offset += tdesc_bitsize(ml->ml_type) - bitoff -
+ ml->ml_size;
#endif
}