github.com/xushiwei/go@v0.0.0-20130601165731-2b9d83f45bc9/test/fixedbugs/bug428.go (about)

     1  // run
     2  
     3  // Copyright 2012 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  // Test that when the compiler expands append inline it does not
     8  // overwrite a value before it needs it (issue 3369).
     9  
    10  package main
    11  
    12  func main() {
    13  	s := make([]byte, 5, 6)
    14  	copy(s, "12346")
    15  	s = append(s[:len(s)-1], '5', s[len(s)-1])
    16  	if string(s) != "123456" {
    17  		panic(s)
    18  	}
    19  }