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