cmd/gc: avoid duplicate allocation during inlining

Fixes #4667.

R=ken2
CC=golang-dev
https://golang.org/cl/7275046
diff --git a/test/fixedbugs/issue4667.go b/test/fixedbugs/issue4667.go
new file mode 100644
index 0000000..3a00a31
--- /dev/null
+++ b/test/fixedbugs/issue4667.go
@@ -0,0 +1,37 @@
+// run
+
+// Copyright 2013 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
+
+import (
+	"fmt"
+	"os"
+	"testing"
+)
+
+var globl *int
+
+func G() {
+	F()
+}
+
+func F() {
+	var x int
+	globl = &x
+}
+
+func main() {
+	nf := testing.AllocsPerRun(100, F)
+	ng := testing.AllocsPerRun(100, G)
+	if int(nf) != 1 {
+		fmt.Printf("AllocsPerRun(100, F) = %v, want 1\n", nf)
+		os.Exit(1)
+	}
+	if int(ng) != 1 {
+		fmt.Printf("AllocsPerRun(100, G) = %v, want 1\n", ng)
+		os.Exit(1)
+	}
+}