]> Cypherpunks.ru repositories - gostls13.git/blob - misc/cgo/testsanitizers/msan2.go
all: make copyright headers consistent with one space after period
[gostls13.git] / misc / cgo / testsanitizers / msan2.go
1 // Copyright 2015 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 package main
6
7 /*
8 #include <string.h>
9 #include <stdint.h>
10 #include <stdlib.h>
11
12 void f(int32_t *p, int n) {
13   int32_t * volatile q = (int32_t *)malloc(sizeof(int32_t) * n);
14   memcpy(p, q, n * sizeof(*p));
15   free(q);
16 }
17
18 void g(int32_t *p, int n) {
19   if (p[4] != 1) {
20     abort();
21   }
22 }
23 */
24 import "C"
25
26 import (
27         "unsafe"
28 )
29
30 func main() {
31         a := make([]int32, 10)
32         C.f((*C.int32_t)(unsafe.Pointer(&a[0])), C.int(len(a)))
33         a[4] = 1
34         C.g((*C.int32_t)(unsafe.Pointer(&a[0])), C.int(len(a)))
35 }