|  | // 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{})) | 
|  | } | 
|  | } |