|  | // run -gcflags="-d=checkptr" | 
|  |  | 
|  | // Copyright 2021 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. | 
|  |  | 
|  | package main | 
|  |  | 
|  | import ( | 
|  | "strings" | 
|  | "unsafe" | 
|  | ) | 
|  |  | 
|  | func main() { | 
|  | defer func() { | 
|  | err := recover() | 
|  | if err == nil { | 
|  | panic("expected panic") | 
|  | } | 
|  | if got := err.(error).Error(); !strings.Contains(got, "slice bounds out of range") { | 
|  | panic("expected panic slice out of bound, got " + got) | 
|  | } | 
|  | }() | 
|  | s := make([]int64, 100) | 
|  | p := unsafe.Pointer(&s[0]) | 
|  | n := 1000 | 
|  |  | 
|  | _ = (*[10]int64)(p)[:n:n] | 
|  | } |