| // Copyright 2015 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. |
| |
| // Issue 11925. Structs with zero-length trailing fields are now |
| // padded by the Go compiler. |
| |
| package cgotest |
| |
| /* |
| struct a11925 { |
| int i; |
| char a[0]; |
| char b[0]; |
| }; |
| |
| struct b11925 { |
| int i; |
| char a[0]; |
| char b[]; |
| }; |
| */ |
| import "C" |
| |
| import ( |
| "testing" |
| "unsafe" |
| ) |
| |
| func test11925(t *testing.T) { |
| if C.sizeof_struct_a11925 != unsafe.Sizeof(C.struct_a11925{}) { |
| t.Errorf("size of a changed: C %d, Go %d", C.sizeof_struct_a11925, unsafe.Sizeof(C.struct_a11925{})) |
| } |
| if C.sizeof_struct_b11925 != unsafe.Sizeof(C.struct_b11925{}) { |
| t.Errorf("size of b changed: C %d, Go %d", C.sizeof_struct_b11925, unsafe.Sizeof(C.struct_b11925{})) |
| } |
| } |