]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/cgo: support niladic macros for gccgo
authorIan Lance Taylor <iant@golang.org>
Sat, 6 Jan 2018 00:52:53 +0000 (16:52 -0800)
committerIan Lance Taylor <iant@golang.org>
Wed, 10 Jan 2018 20:47:34 +0000 (20:47 +0000)
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>
src/cmd/cgo/out.go

index 44a00d8154f8caa1ff0361c4cf00dcfd74604aea..070429f442db0bffab2e8aefbf01f526b0a402ea 100644 (file)
@@ -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 ")