| // run | 
 |  | 
 | // 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 | 
 |  | 
 | type patchlist struct { | 
 | 	head, tail uint32 | 
 | } | 
 |  | 
 | type frag struct { | 
 | 	i   uint32 | 
 | 	out patchlist | 
 | } | 
 |  | 
 | //go:noinline | 
 | //go:registerparams | 
 | func patch(l patchlist, i uint32) { | 
 | } | 
 |  | 
 | //go:noinline | 
 | //go:registerparams | 
 | func badbad(f1, f2 frag) frag { | 
 | 	// concat of failure is failure | 
 | 	if f1.i == 0 || f2.i == 0 { // internal compiler error: 'badbad': incompatible OpArgIntReg [4]: v42 and v26 | 
 | 		return frag{} | 
 | 	} | 
 | 	patch(f1.out, f2.i) | 
 | 	return frag{f1.i, f2.out} | 
 | } | 
 |  | 
 | func main() { | 
 | 	badbad(frag{i: 2}, frag{i: 3}) | 
 | } |