mirror of
https://github.com/golang/go
synced 2024-11-13 20:40:31 -07:00
eaa97fbf20
The cgo tool would sometimes emit a bitfield at an offset that did not correspond to the C offset, such as for the example in the new test. Change-Id: I61b2ca10ee44a42f81c13ed12865f2060168fed5 Reviewed-on: https://go-review.googlesource.com/c/go/+/252378 Trust: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Go Bot <gobot@golang.org>
32 lines
839 B
Go
32 lines
839 B
Go
// Copyright 2020 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
//
|
|
// +build ignore
|
|
|
|
package main
|
|
|
|
// This file tests that we don't generate an incorrect field location
|
|
// for a bitfield that appears aligned.
|
|
|
|
/*
|
|
struct bitfields {
|
|
unsigned int B1 : 5;
|
|
unsigned int B2 : 1;
|
|
unsigned int B3 : 1;
|
|
unsigned int B4 : 1;
|
|
unsigned int Short1 : 16; // misaligned on 8 bit boundary
|
|
unsigned int B5 : 1;
|
|
unsigned int B6 : 1;
|
|
unsigned int B7 : 1;
|
|
unsigned int B8 : 1;
|
|
unsigned int B9 : 1;
|
|
unsigned int B10 : 3;
|
|
unsigned int Short2 : 16; // alignment is OK
|
|
unsigned int Short3 : 16; // alignment is OK
|
|
};
|
|
*/
|
|
import "C"
|
|
|
|
type bitfields C.struct_bitfields
|