Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250930101718.1590205-1-Qi.Chen@windriver.com>
Date: Tue, 30 Sep 2025 18:17:18 +0800
From: Qi.Chen@...driver.com
To: musl@...ts.openwall.com
Cc: qi.chen@...driver.com
Subject: [PATCH] include/sched.h: fix _CPU_op_S to support expression such as '--i'

From: Chen Qi <Qi.Chen@...driver.com>

We need a local variable to hold the result of (i). Otherwise,
when this marco is as with expression such as '--i', we will
get compilation error as below:

  error: operation on 'i' may be undefined [-Werror=sequence-point]

Signed-off-by: Chen Qi <Qi.Chen@...driver.com>
---
 include/sched.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/sched.h b/include/sched.h
index 8c3b53f0..e7b81ca1 100644
--- a/include/sched.h
+++ b/include/sched.h
@@ -89,8 +89,8 @@ int sched_getcpu(void);
 int sched_getaffinity(pid_t, size_t, cpu_set_t *);
 int sched_setaffinity(pid_t, size_t, const cpu_set_t *);
 
-#define __CPU_op_S(i, size, set, op) ( (i)/8U >= (size) ? 0 : \
-	(((unsigned long *)(set))[(i)/8/sizeof(long)] op (1UL<<((i)%(8*sizeof(long))))) )
+#define __CPU_op_S(i, size, set, op) ({size_t _i=(i); (_i)/8U >= (size) ? 0 : \
+	(((unsigned long *)(set))[(_i)/8/sizeof(long)] op (1UL<<((_i)%(8*sizeof(long))))); })
 
 #define CPU_SET_S(i, size, set) __CPU_op_S(i, size, set, |=)
 #define CPU_CLR_S(i, size, set) __CPU_op_S(i, size, set, &=~)
-- 
2.34.1

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.