]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gofrontend: deduplicate C syscall function declarations
authorIan Lance Taylor <ian@gcc.gnu.org>
Thu, 17 Apr 2014 23:39:23 +0000 (23:39 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Thu, 17 Apr 2014 23:39:23 +0000 (23:39 +0000)
A gccgo language extension allows a function to be declared multiple
times. Avoid the use of this extension by dedeplicating declarations
in mksyscall.awk.

From-SVN: r209508

libgo/go/syscall/mksyscall.awk

index daf6554a6cd58d7f3e8294635babccc532d4f6f5..8d009222a182002c402087b8796ea76c32c87c86 100644 (file)
@@ -96,8 +96,11 @@ BEGIN {
     cfnresult = line
 
     printf("// Automatically generated wrapper for %s/%s\n", gofnname, cfnname)
-    printf("//extern %s\n", cfnname)
-    printf("func c_%s(%s) %s\n", cfnname, cfnparams, cfnresult)
+    if (!(cfnname in cfns)) {
+        cfns[cfnname] = 1
+        printf("//extern %s\n", cfnname)
+        printf("func c_%s(%s) %s\n", cfnname, cfnparams, cfnresult)
+    }
     printf("func %s(%s) %s%s%s%s{\n",
           gofnname, gofnparams, gofnresults == "" ? "" : "(", gofnresults,
           gofnresults == "" ? "" : ")", gofnresults == "" ? "" : " ")