Source file test/fixedbugs/issue79197.go

     1  // run
     2  
     3  // Copyright 2026 The Go Authors. All rights reserved.
     4  // Use of this source code is governed by a BSD-style
     5  // license that can be found in the LICENSE file.
     6  
     7  package main
     8  
     9  //go:noinline
    10  func a1(i int) {
    11  	var a [1]struct{}
    12  	a[i] = struct{}{}
    13  }
    14  
    15  //go:noinline
    16  func a2(i int) {
    17  	var a [1][0]int
    18  	a[i] = [0]int{}
    19  }
    20  
    21  //go:noinline
    22  func a3(i int) {
    23  	var a [1]struct{ x [0]int }
    24  	a[i] = struct{ x [0]int }{}
    25  }
    26  
    27  func wantPanic(name string, f func()) {
    28  	defer func() {
    29  		if r := recover(); r != nil {
    30  			return
    31  		}
    32  		panic(name + ": no panic (bug)")
    33  	}()
    34  	f()
    35  }
    36  
    37  func main() {
    38  	wantPanic("a1", func() { a1(5) })
    39  	wantPanic("a2", func() { a2(5) })
    40  	wantPanic("a3", func() { a3(5) })
    41  }
    42  

View as plain text