1
0
mirror of https://github.com/golang/go synced 2024-11-23 04:50:06 -07:00

cmd/gc: fix internal crash

TBR=ken2
CC=golang-codereviews
https://golang.org/cl/70200053
This commit is contained in:
Russ Cox 2014-03-03 19:55:40 -05:00
parent 1d086e39b0
commit 56b983c112
2 changed files with 17 additions and 0 deletions

View File

@ -1358,6 +1358,8 @@ reswitch:
goto error; goto error;
defaultlit(&n->left, T); defaultlit(&n->left, T);
defaultlit(&n->right, T); defaultlit(&n->right, T);
if(n->left->type == T || n->right->type == T)
goto error;
// copy([]byte, string) // copy([]byte, string)
if(isslice(n->left->type) && n->right->type->etype == TSTRING) { if(isslice(n->left->type) && n->right->type->etype == TSTRING) {

View File

@ -0,0 +1,15 @@
// errorcheck
// Copyright 2014 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.
// Internal compiler crash used to stop errors during second copy.
package main
func main() {
_ = copy(nil, []int{}) // ERROR "use of untyped nil"
_ = copy([]int{}, nil) // ERROR "use of untyped nil"
_ = 1+true // ERROR "cannot convert true" "mismatched types int and bool"
}