Index: test/fixedbugs/bug444.go |
=================================================================== |
--- a/test/fixedbugs/bug444.go |
+++ b/test/fixedbugs/bug444.go |
@@ -6,6 +6,7 @@ |
// The no-op conversion here used to confuse the compiler |
// into doing a load-effective-address of nil. |
+// See issue 3670. |
package main |
@@ -13,7 +14,23 @@ |
type T interface {} |
+var x bool |
+ |
func main() { |
reflect.TypeOf(nil) |
- reflect.TypeOf(T(nil)) // used to fail |
+ reflect.TypeOf(T(nil)) // used to miscompile |
+ shouldPanic() |
} |
+ |
+func f() byte { |
+ return []byte(nil)[0] // used to miscompile |
+} |
+ |
+func shouldPanic() { |
+ defer func() { |
+ if recover() == nil { |
+ panic("not panicking") |
+ } |
+ }() |
+ f() |
+} |