changeset 2736:c1f5a20dd725

6288545 GCC-compiled objects' CTF offsets wrong for some bitfields
author sethg
date Thu, 14 Sep 2006 19:25:58 -0700
parents b067731c8b5a
children 7d6e6d40d4b0
files usr/src/tools/ctf/cvt/dwarf.c
diffstat 1 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/tools/ctf/cvt/dwarf.c	Thu Sep 14 19:04:39 2006 -0700
+++ b/usr/src/tools/ctf/cvt/dwarf.c	Thu Sep 14 19:25:58 2006 -0700
@@ -221,7 +221,7 @@
 		case UNION:
 		case ENUM:
 		case POINTER:
-			return (tdp->t_size);
+			return (tdp->t_size * NBBY);
 
 		case FORWARD:
 			return (0);
@@ -983,8 +983,8 @@
 #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
 		}