aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2018-01-05 16:52:53 -0800
committerIan Lance Taylor <iant@golang.org>2018-01-10 20:47:34 +0000
commit1b89dada1ae7e2378a06f0ffeebb31f925fb08e9 (patch)
tree579fea1873fec9dc34377f284153c8f954a78755
parentf7d8098a7b6148811824bf50ec32c8f8d0a35d12 (diff)
downloadgo-1b89dada1ae7e2378a06f0ffeebb31f925fb08e9.tar.gz
go-1b89dada1ae7e2378a06f0ffeebb31f925fb08e9.zip
cmd/cgo: support niladic macros for gccgo
https://golang.org/cl/43970 changed writeOutputFunc to support niladic function-like macros; apply the corresponding change to writeGccgoOutputFunc. Updates #10715 Updates #18720 Change-Id: I5decb1d37ec71507466ade2eeda4b89c8785eaef Reviewed-on: https://go-review.googlesource.com/86475 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Hiroshi Ioka <hirochachacha@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-rw-r--r--src/cmd/cgo/out.go16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/cmd/cgo/out.go b/src/cmd/cgo/out.go
index 44a00d8154..070429f442 100644
--- a/src/cmd/cgo/out.go
+++ b/src/cmd/cgo/out.go
@@ -695,14 +695,18 @@ func (p *Package) writeGccgoOutputFunc(fgcc *os.File, n *Name) {
fmt.Fprintf(fgcc, "(void*)")
}
}
- fmt.Fprintf(fgcc, "%s(", n.C)
- for i := range n.FuncType.Params {
- if i > 0 {
- fmt.Fprintf(fgcc, ", ")
+ if n.Kind == "macro" {
+ fmt.Fprintf(fgcc, "%s;\n", n.C)
+ } else {
+ fmt.Fprintf(fgcc, "%s(", n.C)
+ for i := range n.FuncType.Params {
+ if i > 0 {
+ fmt.Fprintf(fgcc, ", ")
+ }
+ fmt.Fprintf(fgcc, "p%d", i)
}
- fmt.Fprintf(fgcc, "p%d", i)
+ fmt.Fprintf(fgcc, ");\n")
}
- fmt.Fprintf(fgcc, ");\n")
fmt.Fprintf(fgcc, "\t_cgo_tsan_release();\n")
if t := n.FuncType.Result; t != nil {
fmt.Fprintf(fgcc, "\treturn ")