diff options
author | Shenghou Ma <minux@golang.org> | 2015-12-16 00:06:45 -0500 |
---|---|---|
committer | Minux Ma <minux@golang.org> | 2015-12-16 22:13:17 +0000 |
commit | a766d8e59c2c43b4c6795404d303b64b9fe69a0f (patch) | |
tree | 9d08d13a1a2f6d6b9f515021286d8de5869c9037 | |
parent | e8e786c20d09a5d5e69761f1676e5065bab4a319 (diff) | |
download | go-a766d8e59c2c43b4c6795404d303b64b9fe69a0f.tar.gz go-a766d8e59c2c43b4c6795404d303b64b9fe69a0f.zip |
cmd/cgo: map C unsigned char back to _Ctype_uchar in error messages
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>
-rw-r--r-- | misc/cgo/errors/issue13635.go | 24 | ||||
-rwxr-xr-x | misc/cgo/errors/test.bash | 15 | ||||
-rw-r--r-- | src/cmd/cgo/gcc.go | 1 |
3 files changed, 34 insertions, 6 deletions
diff --git a/misc/cgo/errors/issue13635.go b/misc/cgo/errors/issue13635.go new file mode 100644 index 0000000000..689e958b40 --- /dev/null +++ b/misc/cgo/errors/issue13635.go @@ -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 + ) +} diff --git a/misc/cgo/errors/test.bash b/misc/cgo/errors/test.bash index 1744eee077..cd358a10f8 100755 --- a/misc/cgo/errors/test.bash +++ b/misc/cgo/errors/test.bash @@ -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 diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go index b8c761fc4f..750b89b540 100644 --- a/src/cmd/cgo/gcc.go +++ b/src/cmd/cgo/gcc.go @@ -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 |