diff options
author | Devon H. O'Dell <devon.odell@gmail.com> | 2009-12-17 12:38:29 -0800 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2009-12-17 12:38:29 -0800 |
commit | 7a5f4be97e1b2d61c56c333b47470514472bd05d (patch) | |
tree | ee676268224b6f1fa9df07a1f69bd45eef10a780 | |
parent | a8123321519279357ac74e5aae6421a7fe94f9cf (diff) | |
download | go-7a5f4be97e1b2d61c56c333b47470514472bd05d.tar.gz go-7a5f4be97e1b2d61c56c333b47470514472bd05d.zip |
Use BitSize instead of the field's type native ByteSize when calculating
structs containing bitfields.
Fixes #163.
R=rsc
CC=golang-dev
https://golang.org/cl/180059
-rw-r--r-- | src/cmd/cgo/gcc.go | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go index 07bfa8ab65..aeca50eece 100644 --- a/src/cmd/cgo/gcc.go +++ b/src/cmd/cgo/gcc.go @@ -693,6 +693,9 @@ func (c *typeConv) Struct(dt *dwarf.StructType) (expr *ast.StructType, csyntax s } for _, f := range dt.Field { + if f.BitSize > 0 && f.BitSize != f.ByteSize*8 { + continue + } if f.ByteOffset > off { fld = c.pad(fld, f.ByteOffset-off) off = f.ByteOffset |