github.com/q45/go@v0.0.0-20151101211701-a4fb8c13db3f/misc/cgo/testsanitizers/msan.go (about) 1 package main 2 3 /* 4 #include <stdint.h> 5 6 void f(int32_t *p, int n) { 7 int i; 8 9 for (i = 0; i < n; i++) { 10 p[i] = (int32_t)i; 11 } 12 } 13 */ 14 import "C" 15 16 import ( 17 "fmt" 18 "os" 19 "unsafe" 20 ) 21 22 func main() { 23 a := make([]int32, 10) 24 C.f((*C.int32_t)(unsafe.Pointer(&a[0])), C.int(len(a))) 25 for i, v := range a { 26 if i != int(v) { 27 fmt.Println("bad %d: %v\n", i, a) 28 os.Exit(1) 29 } 30 } 31 }