Commit 5ad9e2db authored by Luuk van Dijk's avatar Luuk van Dijk

gc: handle function calls in arguments to builtin complex operations.

Fixes #2582

R=rsc
CC=golang-dev
https://golang.org/cl/5574044
parent 858f0b4d
......@@ -204,6 +204,8 @@ complexgen(Node *n, Node *res)
case OIND:
case ONAME: // PHEAP or PPARAMREF var
case OCALLFUNC:
case OCALLMETH:
case OCALLINTER:
igen(n, &n1, res);
complexmove(&n1, res);
regfree(&n1);
......
// $G $D/$F.go || echo "Bug398"
// Copyright 2011 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.
// Issue 2582
package foo
type T struct {}
func (T) cplx() complex128 {
for false {} // avoid inlining
return complex(1,0)
}
type I interface {
cplx() complex128
}
func f(e float32, t T) {
_ = real(t.cplx())
_ = imag(t.cplx())
var i I
i = t
_ = real(i.cplx())
_ = imag(i.cplx())
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment