summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevon H. O'Dell <devon.odell@gmail.com>2009-12-23 09:26:21 -0800
committerDevon H. O'Dell <devon.odell@gmail.com>2009-12-23 09:26:21 -0800
commitba589d8b549d963ac1f70e4ef37739409ab40e78 (patch)
tree4d61229ca3adb80c0d4c52d286af7b166e7e477f
parent1f79677d8aba423cb5fa1b10e04b1e421fc4eeff (diff)
downloadgo-ba589d8b549d963ac1f70e4ef37739409ab40e78.tar.gz
cgo: don't overwrite p.Crefs
It's expected to be shared between all files so that all types are output. Fixes bug reported on mailing list by Peter Froehlich. R=rsc, phf CC=golang-dev http://codereview.appspot.com/183043 Committer: Russ Cox <rsc@golang.org>
-rw-r--r--src/cmd/cgo/ast.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/cmd/cgo/ast.go b/src/cmd/cgo/ast.go
index 76ff9ec65..c78d8bb8e 100644
--- a/src/cmd/cgo/ast.go
+++ b/src/cmd/cgo/ast.go
@@ -118,7 +118,9 @@ func openProg(name string, p *Prog) {
}
// Accumulate pointers to uses of C.x.
- p.Crefs = make([]*Cref, 0, 8)
+ if p.Crefs == nil {
+ p.Crefs = make([]*Cref, 0, 8)
+ }
walk(p.AST, p, "prog")
}