{"push_id":1118082323,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"3572c6418b5032fbd7e888e14fd9ad5afac85dfc","before":"d52022676da939cb183083da4ee0b614f86ac3b0","commits":[{"sha":"3572c6418b5032fbd7e888e14fd9ad5afac85dfc","author":{"email":"8c99c3a9284e493be632950b84cd789d08ed3e9d@golang.org","name":"Keith Randall"},"message":"cmd/compile: keep pointer input arguments live throughout function\n\nIntroduce a KeepAlive op which makes sure that its argument is kept\nlive until the KeepAlive.  Use KeepAlive to mark pointer input\narguments as live after each function call and at each return.\n\nWe do this change only for pointer arguments.  Those are the\ncritical ones to handle because they might have finalizers.\nDoing compound arguments (slices, structs, ...) is more complicated\nbecause we would need to track field liveness individually (we do\nthat for auto variables now, but inputs requires extra trickery).\n\nTurn off the automatic marking of args as live.  That way, when args\nare explicitly nulled, plive will know that the original argument is\ndead.\n\nThe KeepAlive op will be the eventual implementation of\nruntime.KeepAlive.\n\nFixes #15277\n\nChange-Id: I5f223e65d99c9f8342c03fbb1512c4d363e903e5\nReviewed-on: https://go-review.googlesource.com/22365\nReviewed-by: David Chase <drchase@google.com>\nReviewed-by: Russ Cox <rsc@golang.org>","distinct":true,"url":"https://api.github.com/repos/mk0x9/go/commits/3572c6418b5032fbd7e888e14fd9ad5afac85dfc"}]}