gc: fix unsafe.Sizeof on ideal constants

R=ken2
CC=golang-dev
https://golang.org/cl/1280041
diff --git a/test/fixedbugs/bug279.go b/test/fixedbugs/bug279.go
new file mode 100644
index 0000000..af8e056
--- /dev/null
+++ b/test/fixedbugs/bug279.go
@@ -0,0 +1,36 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2010 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.
+
+// http://code.google.com/p/go/issues/detail?id=799
+
+package main
+
+import "unsafe"
+
+func main() {
+	n := unsafe.Sizeof(0)
+	if n != 4 && n != 8 {
+		println("BUG sizeof 0", n)
+		return
+	}
+	n = unsafe.Alignof(0)
+	if n != 4 && n != 8 {
+		println("BUG alignof 0", n)
+		return
+	}
+	
+	n = unsafe.Sizeof("")
+	if n != 8 && n != 16 {
+		println("BUG sizeof \"\"", n)
+		return
+	}
+	n = unsafe.Alignof("")
+	if n != 4 && n != 8 {
+		println("BUG alignof \"\"", n)
+		return
+	}
+}
+