Commit 3f335f80 authored by Russ Cox's avatar Russ Cox

gc: fix unsafe.Sizeof

Fixes #1608.
Fixes #1787.

R=ken2
CC=golang-dev
https://golang.org/cl/4530045
parent 0389051a
......@@ -41,6 +41,7 @@ unsafenmagic(Node *nn)
tr = r->type;
if(tr == T)
goto bad;
dowidth(tr);
v = tr->width;
goto yes;
}
......
// $G $D/$F.go
// Copyright 2011 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 1787.
package main
import "unsafe"
const x = unsafe.Sizeof([8]byte{})
func main() {
var b [x]int
_ = b
}
/*
bug338.go:14: array bound must be non-negative
*/
// $G $D/$F.go && $L $F.$A && ./$A.out
// Copyright 2011 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 1608.
// Size used to be -1000000000.
package main
import "unsafe"
func main() {
var a interface{} = 0
size := unsafe.Sizeof(a)
if size != 2*unsafe.Sizeof((*int)(nil)) {
println("wrong size: ", size)
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment