modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/issue5515.go (about)

     1  // run
     2  
     3  // Copyright 2013 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  // issue 5515: miscompilation doing inlining in generated method wrapper
     8  
     9  package main
    10  
    11  type T uint32
    12  
    13  func main() {
    14          b := make([]T, 8)
    15          b[0] = 0xdeadbeef
    16          rs := Slice(b)
    17          sort(rs)
    18  }
    19  
    20  type Slice []T
    21  
    22  func (s Slice) Swap(i, j int) {
    23          tmp := s[i]
    24          s[i] = s[j]
    25          s[j] = tmp
    26  }
    27  
    28  type Interface interface {
    29          Swap(i, j int)
    30  }
    31  
    32  func sort(data Interface) {
    33          data.Swap(0, 4)
    34  }