]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/cgo: map C unsigned char back to _Ctype_uchar in error messages
authorShenghou Ma <minux@golang.org>
Wed, 16 Dec 2015 05:06:45 +0000 (00:06 -0500)
committerMinux Ma <minux@golang.org>
Wed, 16 Dec 2015 22:13:17 +0000 (22:13 +0000)
Fixes #13635.

Change-Id: Icab4a45567f435f002a8f6c85db9538acf054a70
Reviewed-on: https://go-review.googlesource.com/17863
Run-TryBot: Minux Ma <minux@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
misc/cgo/errors/issue13635.go [new file with mode: 0644]
misc/cgo/errors/test.bash
src/cmd/cgo/gcc.go

diff --git a/misc/cgo/errors/issue13635.go b/misc/cgo/errors/issue13635.go
new file mode 100644 (file)
index 0000000..689e958
--- /dev/null
@@ -0,0 +1,24 @@
+// Copyright 2015 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 13635: used to output error about C.unsignedchar.
+// This test tests all such types.
+
+package pkg
+
+import "C"
+
+func main() {
+       var (
+               _ C.uchar         = "uc"  // ERROR HERE
+               _ C.schar         = "sc"  // ERROR HERE
+               _ C.ushort        = "us"  // ERROR HERE
+               _ C.uint          = "ui"  // ERROR HERE
+               _ C.ulong         = "ul"  // ERROR HERE
+               _ C.longlong      = "ll"  // ERROR HERE
+               _ C.ulonglong     = "ull" // ERROR HERE
+               _ C.complexfloat  = "cf"  // ERROR HERE
+               _ C.complexdouble = "cd"  // ERROR HERE
+       )
+}
index 1744eee077cd388499dcc03f326450c9dc8dabfc..cd358a10f815e0fe13c9c8be143a4f07ee334c7f 100755 (executable)
@@ -16,7 +16,7 @@ check() {
 
 expect() {
        file=$1
-       error=$2
+       shift
        if go build $file >errs 2>&1; then
                echo 1>&2 misc/cgo/errors/test.bash: BUG: expected cgo to fail but it succeeded
                exit 1
@@ -25,11 +25,13 @@ expect() {
                echo 1>&2 misc/cgo/errors/test.bash: BUG: expected error output but saw none
                exit 1
        fi
-       if ! fgrep $error errs >/dev/null 2>&1; then
-               echo 1>&2 misc/cgo/errors/test.bash: BUG: expected error output to contain \"$error\" but saw:
-               cat 1>&2 errs
-               exit 1
-       fi
+       for error; do
+               if ! fgrep $error errs >/dev/null 2>&1; then
+                       echo 1>&2 misc/cgo/errors/test.bash: BUG: expected error output to contain \"$error\" but saw:
+                       cat 1>&2 errs
+                       exit 1
+               fi
+       done
 }
 
 check err1.go
@@ -41,6 +43,7 @@ check issue11097a.go
 check issue11097b.go
 expect issue13129.go C.ushort
 check issue13423.go
+expect issue13635.go C.uchar C.schar C.ushort C.uint C.ulong C.longlong C.ulonglong C.complexfloat C.complexdouble
 
 if ! go run ptr.go; then
        exit 1
index b8c761fc4f94c10b0cbde3f95f82dc6b60cad73e..750b89b5405d504e7a21584a65c4a2d5b4086a09 100644 (file)
@@ -1319,6 +1319,7 @@ var dwarfToName = map[string]string{
        "long long int":          "longlong",
        "long long unsigned int": "ulonglong",
        "signed char":            "schar",
+       "unsigned char":          "uchar",
 }
 
 const signedDelta = 64