Skip to content
Snippets Groups Projects
Commit 9facf1f2 authored by Ian Lance Taylor's avatar Ian Lance Taylor Committed by Gopher Robot
Browse files

[release-branch.go1.23] runtime/cgo: avoid errors from -Wdeclaration-after-statement

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: default avatarCherry Mui <cherryyz@google.com>
Reviewed-by: default avatarMichael 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 76c70282)
Reviewed-on: https://go-review.googlesource.com/c/go/+/652935


Reviewed-by: default avatarMichael Knyszek <mknyszek@google.com>
parent 0fa31cb6
No related branches found
No related tags found
No related merge requests found
...@@ -25,7 +25,8 @@ package cgo ...@@ -25,7 +25,8 @@ package cgo
// Use -fno-stack-protector to avoid problems locating the // Use -fno-stack-protector to avoid problems locating the
// proper support functions. See issues #52919, #54313, #58385. // 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 #cgo solaris CPPFLAGS: -D_POSIX_PTHREAD_SEMANTICS
......
...@@ -48,9 +48,11 @@ x_cgo_sys_thread_create(void* (*func)(void*), void* arg) { ...@@ -48,9 +48,11 @@ x_cgo_sys_thread_create(void* (*func)(void*), void* arg) {
uintptr_t uintptr_t
_cgo_wait_runtime_init_done(void) { _cgo_wait_runtime_init_done(void) {
void (*pfn)(struct context_arg*); void (*pfn)(struct context_arg*);
int done;
pfn = __atomic_load_n(&cgo_context_function, __ATOMIC_CONSUME); pfn = __atomic_load_n(&cgo_context_function, __ATOMIC_CONSUME);
int done = 2; done = 2;
if (__atomic_load_n(&runtime_init_done, __ATOMIC_CONSUME) != done) { if (__atomic_load_n(&runtime_init_done, __ATOMIC_CONSUME) != done) {
pthread_mutex_lock(&runtime_init_mu); pthread_mutex_lock(&runtime_init_mu);
while (__atomic_load_n(&runtime_init_done, __ATOMIC_CONSUME) == 0) { while (__atomic_load_n(&runtime_init_done, __ATOMIC_CONSUME) == 0) {
......
...@@ -69,8 +69,10 @@ x_cgo_sys_thread_create(void (*func)(void*), void* arg) { ...@@ -69,8 +69,10 @@ x_cgo_sys_thread_create(void (*func)(void*), void* arg) {
int int
_cgo_is_runtime_initialized() { _cgo_is_runtime_initialized() {
int status;
EnterCriticalSection(&runtime_init_cs); EnterCriticalSection(&runtime_init_cs);
int status = runtime_init_done; status = runtime_init_done;
LeaveCriticalSection(&runtime_init_cs); LeaveCriticalSection(&runtime_init_cs);
return status; return status;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment