Perhaps we wanted to print these variables? Anyway, just make them
global, so the warnings will go away:
gcc -o sctest.o sctest.c -Wall -g -O3 -I.. -I../include -L.. -lmodel
sctest.c: In function ‘b’:
sctest.c:20:6: warning: unused variable ‘r1’ [-Wunused-variable]
sctest.c: In function ‘c’:
sctest.c:26:6: warning: unused variable ‘r2’ [-Wunused-variable]
sctest.c: In function ‘d’:
sctest.c:33:6: warning: unused variable ‘r3’ [-Wunused-variable]
atomic_int y;
atomic_int z;
atomic_int y;
atomic_int z;
+static int r1, r2, r3;
+
static void a(void *obj)
{
atomic_store_explicit(&z, 1, memory_order_relaxed);
static void a(void *obj)
{
atomic_store_explicit(&z, 1, memory_order_relaxed);
{
atomic_store_explicit(&x, 1, memory_order_relaxed);
atomic_store_explicit(&y, 1, memory_order_relaxed);
{
atomic_store_explicit(&x, 1, memory_order_relaxed);
atomic_store_explicit(&y, 1, memory_order_relaxed);
- int r1=atomic_load_explicit(&z, memory_order_relaxed);
+ r1=atomic_load_explicit(&z, memory_order_relaxed);
}
static void c(void *obj)
{
atomic_store_explicit(&z, 2, memory_order_relaxed);
atomic_store_explicit(&x, 2, memory_order_relaxed);
}
static void c(void *obj)
{
atomic_store_explicit(&z, 2, memory_order_relaxed);
atomic_store_explicit(&x, 2, memory_order_relaxed);
- int r2=atomic_load_explicit(&y, memory_order_relaxed);
+ r2=atomic_load_explicit(&y, memory_order_relaxed);
}
static void d(void *obj)
{
atomic_store_explicit(&z, 3, memory_order_relaxed);
atomic_store_explicit(&y, 2, memory_order_relaxed);
}
static void d(void *obj)
{
atomic_store_explicit(&z, 3, memory_order_relaxed);
atomic_store_explicit(&y, 2, memory_order_relaxed);
- int r3=atomic_load_explicit(&x, memory_order_relaxed);
+ r3=atomic_load_explicit(&x, memory_order_relaxed);
}
int user_main(int argc, char **argv)
}
int user_main(int argc, char **argv)
thrd_join(t3);
thrd_join(t4);
thrd_join(t3);
thrd_join(t4);
+ /* Check and/or print r1, r2, r3? */
+