]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.24] 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:46:33 +0000 (11:46 -0800)
It's used by the SWIG CI build, at least, and it's an easy fix.

Fixes #71963
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/+/652936
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 c37135fbbe4b166a966fcbfcacb21cbbaffa5985..c90fb424ac29ff835e52473c75ea146b5bbd7969 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 2fe76e4360738b7154b21ce216f987a9f2711aa7..e9b0a3f769b756de1bee51b33ae5f72295319928 100644 (file)
@@ -39,10 +39,11 @@ void
 x_cgo_sys_thread_create(void* (*func)(void*), void* arg) {
        pthread_attr_t attr;
        pthread_t p;
+       int err;
 
        pthread_attr_init(&attr);
        pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-       int err = _cgo_try_pthread_create(&p, &attr, func, arg);
+       err = _cgo_try_pthread_create(&p, &attr, func, arg);
        if (err != 0) {
                fprintf(stderr, "pthread_create failed: %s", strerror(err));
                abort();
@@ -52,9 +53,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 ddc0ad7010e5080fa31d012b775e3a3be03c6ae1..577a686eaa2aacca63c4cd8f7dc9e18dbff3de45 100644 (file)
@@ -75,8 +75,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;
 }