Skip to content

Commit

Permalink
cmd/cgo: map C unsigned char back to _Ctype_uchar in error messages
Browse files Browse the repository at this point in the history
Fixes golang#13635.

Change-Id: Icab4a45567f435f002a8f6c85db9538acf054a70
Reviewed-on: https://go-review.googlesource.com/17863
Run-TryBot: Minux Ma <[email protected]>
TryBot-Result: Gobot Gobot <[email protected]>
Reviewed-by: Ian Lance Taylor <[email protected]>
  • Loading branch information
minux committed Dec 16, 2015
1 parent e8e786c commit a766d8e
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 6 deletions.
24 changes: 24 additions & 0 deletions misc/cgo/errors/issue13635.go
Original file line number Diff line number Diff line change
@@ -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
)
}
15 changes: 9 additions & 6 deletions misc/cgo/errors/test.bash
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down
1 change: 1 addition & 0 deletions src/cmd/cgo/gcc.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit a766d8e

Please sign in to comment.