diff options
author | Akshat Kumar <seed@mail.nanosouffle.net> | 2012-10-07 14:11:59 +0800 |
---|---|---|
committer | Shenghou Ma <minux.ma@gmail.com> | 2012-10-07 14:11:59 +0800 |
commit | 51e8fe5b1b6ae86976fb8e6d6333f14299b36b17 (patch) | |
tree | b1eb70a235b383bfb757c7aecae6aaa83c2d8e43 /test/typecheck.go | |
parent | a45777fe9975583cac3ef7ee5d61937f5a003c5a (diff) | |
download | go-git-51e8fe5b1b6ae86976fb8e6d6333f14299b36b17.tar.gz |
cmd/gc: don't dereference a nil Type pointer in widstruct
The nil dereference in the next few lines doesn't seem
to cause a segmentation fault on Unix, but does seem
to halt the Go compiler.
The following is a test case:
>>>
package main
func mine(int b) int {
return b + 2
}
func main() {
mine()
c = mine()
}
<<<
Without this change only the following is caught:
typecheck.go:3: undefined: b
typecheck.go:4: undefined: b
with it, we catch all the errors:
typecheck.go:3: undefined: b
typecheck.go:4: undefined: b
typecheck.go:10: undefined: c
typecheck.go:10: cannot assign to c .
R=rsc, minux.ma
CC=golang-dev
https://golang.org/cl/6542060
Diffstat (limited to 'test/typecheck.go')
-rw-r--r-- | test/typecheck.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/typecheck.go b/test/typecheck.go new file mode 100644 index 0000000000..239ceacc69 --- /dev/null +++ b/test/typecheck.go @@ -0,0 +1,18 @@ +// errorcheck + +// Verify that the Go compiler will not +// die after running into an undefined +// type in the argument list for a +// function. +// Does not compile. + +package main + +func mine(int b) int { // ERROR "undefined.*b" + return b + 2 // ERROR "undefined.*b" +} + +func main() { + mine() + c = mine() // ERROR "undefined.*c" "cannot assign to c" +} |