| // Copyright 2014 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 5242. Cgo incorrectly computed the alignment of structs |
| // with no Go accessible fields as 0, and then panicked on |
| // modulo-by-zero computations. |
| |
| package cgotest |
| |
| /* |
| typedef struct { |
| } foo; |
| |
| typedef struct { |
| int x : 1; |
| } bar; |
| |
| int issue5242(foo f, bar b) { |
| return 5242; |
| } |
| */ |
| import "C" |
| |
| import "testing" |
| |
| func test5242(t *testing.T) { |
| if got := C.issue5242(C.foo{}, C.bar{}); got != 5242 { |
| t.Errorf("got %v", got) |
| } |
| } |