Source file test/fixedbugs/issue52953.go

     1  // run
     2  
     3  // Copyright 2022 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 52953: miscompilation for composite literal assignment
     8  // when LHS is address-taken.
     9  
    10  package main
    11  
    12  type T struct {
    13  	Field1 bool
    14  }
    15  
    16  func main() {
    17  	var ret T
    18  	ret.Field1 = true
    19  	var v *bool = &ret.Field1
    20  	ret = T{Field1: *v}
    21  	check(ret.Field1)
    22  }
    23  
    24  //go:noinline
    25  func check(b bool) {
    26  	if !b {
    27  		panic("FAIL")
    28  	}
    29  }
    30  

View as plain text