]> Cypherpunks repositories - gostls13.git/commitdiff
misc/cgo/errors: test that the Go rune type is not identical to C.int
authorBryan C. Mills <bcmills@google.com>
Wed, 13 Sep 2017 21:21:07 +0000 (17:21 -0400)
committerBryan Mills <bcmills@google.com>
Thu, 14 Sep 2017 02:24:39 +0000 (02:24 +0000)
rune has a well-defined size, but C.int is implementation-specified.
Using one as the other should require an explicit conversion.

updates #13467

Change-Id: I53ab2478427dca790efdcc197f6b8d9fbfbd1847
Reviewed-on: https://go-review.googlesource.com/63730
Reviewed-by: Ian Lance Taylor <iant@golang.org>
misc/cgo/errors/errors_test.go
misc/cgo/errors/src/issue13467.go [new file with mode: 0644]

index e2b91063a6fef4180b08ea46ae5cd0429daed5d8..d2e833c52c82f714d727ba4d67d580fccaee5aaa 100644 (file)
@@ -114,6 +114,7 @@ func TestReportsTypeErrors(t *testing.T) {
                "issue11097b.go",
                "issue13129.go",
                "issue13423.go",
+               "issue13467.go",
                "issue13635.go",
                "issue13830.go",
                "issue16116.go",
diff --git a/misc/cgo/errors/src/issue13467.go b/misc/cgo/errors/src/issue13467.go
new file mode 100644 (file)
index 0000000..e061880
--- /dev/null
@@ -0,0 +1,15 @@
+// Copyright 2017 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.
+
+package p
+
+/*
+static int transform(int x) { return x; }
+*/
+import "C"
+
+func F() {
+       var x rune = '✈'
+       var _ rune = C.transform(x) // ERROR HERE: C\.int
+}