mirror of
https://github.com/golang/go
synced 2024-11-22 00:44:39 -07:00
gc: final ...T bug for the day
R=ken2 CC=golang-dev https://golang.org/cl/199046
This commit is contained in:
parent
f7e2266ce6
commit
45515011cc
@ -411,6 +411,8 @@ cgen_dcl(Node *n)
|
|||||||
}
|
}
|
||||||
if(!(n->class & PHEAP))
|
if(!(n->class & PHEAP))
|
||||||
return;
|
return;
|
||||||
|
if(n->alloc == nil)
|
||||||
|
n->alloc = callnew(n->type);
|
||||||
cgen_as(n->heapaddr, n->alloc);
|
cgen_as(n->heapaddr, n->alloc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1907,7 +1907,6 @@ addrescapes(Node *n)
|
|||||||
n->class |= PHEAP;
|
n->class |= PHEAP;
|
||||||
n->addable = 0;
|
n->addable = 0;
|
||||||
n->ullman = 2;
|
n->ullman = 2;
|
||||||
n->alloc = callnew(n->type);
|
|
||||||
n->xoffset = 0;
|
n->xoffset = 0;
|
||||||
|
|
||||||
// create stack variable to hold pointer to heap
|
// create stack variable to hold pointer to heap
|
||||||
|
@ -2182,6 +2182,8 @@ paramstoheap(Type **argin)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
// generate allocation & copying code
|
// generate allocation & copying code
|
||||||
|
if(v->alloc == nil)
|
||||||
|
v->alloc = callnew(v->type);
|
||||||
nn = list(nn, nod(OAS, v->heapaddr, v->alloc));
|
nn = list(nn, nod(OAS, v->heapaddr, v->alloc));
|
||||||
nn = list(nn, nod(OAS, v, v->stackparam));
|
nn = list(nn, nod(OAS, v, v->stackparam));
|
||||||
}
|
}
|
||||||
|
@ -18,13 +18,11 @@ func sumC(args ...int) int {
|
|||||||
return func() int { return sum(args) } ()
|
return func() int { return sum(args) } ()
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO(rsc)
|
|
||||||
var sumD = func(args ...int) int { return sum(args) }
|
var sumD = func(args ...int) int { return sum(args) }
|
||||||
|
|
||||||
var sumE = func() func(...int) int { return func(args ...int) int { return sum(args) } } ()
|
var sumE = func() func(...int) int { return func(args ...int) int { return sum(args) } } ()
|
||||||
|
|
||||||
var sumF = func(args ...int) func() int { return func() int { return sum(args) } }
|
var sumF = func(args ...int) func() int { return func() int { return sum(args) } }
|
||||||
*/
|
|
||||||
|
|
||||||
func sumA(args []int) int {
|
func sumA(args []int) int {
|
||||||
s := 0
|
s := 0
|
||||||
@ -76,7 +74,6 @@ func main() {
|
|||||||
if x := sumC(4, 5, 6); x != 15 {
|
if x := sumC(4, 5, 6); x != 15 {
|
||||||
panicln("sumC 15", x)
|
panicln("sumC 15", x)
|
||||||
}
|
}
|
||||||
/* TODO(rsc)
|
|
||||||
if x := sumD(4, 5, 7); x != 16 {
|
if x := sumD(4, 5, 7); x != 16 {
|
||||||
panicln("sumD 16", x)
|
panicln("sumD 16", x)
|
||||||
}
|
}
|
||||||
@ -86,7 +83,6 @@ func main() {
|
|||||||
if x := sumF(4, 5, 9)(); x != 18 {
|
if x := sumF(4, 5, 9)(); x != 18 {
|
||||||
panicln("sumF 18", x)
|
panicln("sumF 18", x)
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
if x := sum2(1, 2, 3); x != 2*6 {
|
if x := sum2(1, 2, 3); x != 2*6 {
|
||||||
panicln("sum 6", x)
|
panicln("sum 6", x)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user