]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.23] runtime/cgo: avoid errors from -Wdeclaration-after-statement
authorIan Lance Taylor <iant@golang.org>
Wed, 26 Feb 2025 05:35:32 +0000 (21:35 -0800)
committerGopher Robot <gobot@golang.org>
Wed, 26 Feb 2025 19:44:28 +0000 (11:44 -0800)
It's used by the SWIG CI build, at least, and it's an easy fix.

[The change in x_cgo_sys_thread_create is gone, as that function was
already compliant in 1.23.]

Fixes #71962
For #71961

Change-Id: Id21071a5aef216b35ecf0e9cd3e05d08972d92fe
Reviewed-on: https://go-review.googlesource.com/c/go/+/652181
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Michael Pratt <mpratt@google.com>
(cherry picked from commit 76c70282538bf4cccd6f98b5b26df7f5a7f2cebd)
Reviewed-on: https://go-review.googlesource.com/c/go/+/652935
Reviewed-by: Michael Knyszek <mknyszek@google.com>
src/runtime/cgo/cgo.go
src/runtime/cgo/gcc_libinit.c
src/runtime/cgo/gcc_libinit_windows.c

index 1e3a50291838d1dcb00309035b033d83e9c9bf4f..6b0acf70235dd6174e5030481944b35230d51f28 100644 (file)
@@ -25,7 +25,8 @@ package cgo
 
 // Use -fno-stack-protector to avoid problems locating the
 // proper support functions. See issues #52919, #54313, #58385.
-#cgo CFLAGS: -Wall -Werror -fno-stack-protector
+// Use -Wdeclaration-after-statement because some CI builds use it.
+#cgo CFLAGS: -Wall -Werror -fno-stack-protector -Wdeclaration-after-statement
 
 #cgo solaris CPPFLAGS: -D_POSIX_PTHREAD_SEMANTICS
 
index 33a9ff93cad52711313784832c5097a20073c4b7..6cceae34c6c3547605f9a0ac865e76833cfecb5a 100644 (file)
@@ -48,9 +48,11 @@ x_cgo_sys_thread_create(void* (*func)(void*), void* arg) {
 uintptr_t
 _cgo_wait_runtime_init_done(void) {
        void (*pfn)(struct context_arg*);
+       int done;
+
        pfn = __atomic_load_n(&cgo_context_function, __ATOMIC_CONSUME);
 
-       int done = 2;
+       done = 2;
        if (__atomic_load_n(&runtime_init_done, __ATOMIC_CONSUME) != done) {
                pthread_mutex_lock(&runtime_init_mu);
                while (__atomic_load_n(&runtime_init_done, __ATOMIC_CONSUME) == 0) {
index 9a8c65ea291ad8c342e448a52bc7e72c69549257..d43d12a24ae28d576b1cedbd3821e87f91d14821 100644 (file)
@@ -69,8 +69,10 @@ x_cgo_sys_thread_create(void (*func)(void*), void* arg) {
 
 int
 _cgo_is_runtime_initialized() {
+        int status;
+
         EnterCriticalSection(&runtime_init_cs);
-        int status = runtime_init_done;
+        status = runtime_init_done;
         LeaveCriticalSection(&runtime_init_cs);
         return status;
 }