// 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}) }