From: Mathieu Desnoyers Date: Tue, 20 Apr 2021 20:21:53 +0000 (-0400) Subject: Fix: rcuhlist header: use parenthesis around macro parameters X-Git-Tag: v0.13.0~9 X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=commitdiff_plain;h=2b6f565a6ad3ab89fc079ea1e8954dda5d98a8f7;hp=c9f0b5df9f08a97da2aba43cdb4df2ee196056f7 Fix: rcuhlist header: use parenthesis around macro parameters The coding style followed across liburcu is to use parenthesis around macro parameters when it would otherwise lead to unexpected results due to priority of operators. Fix rcuhlist.h to follow this coding style. Signed-off-by: Mathieu Desnoyers Change-Id: I2f7988e96ce495d68960c5f1036aa6953d3ff53b --- diff --git a/include/urcu/rcuhlist.h b/include/urcu/rcuhlist.h index ca1da06..20c7238 100644 --- a/include/urcu/rcuhlist.h +++ b/include/urcu/rcuhlist.h @@ -55,8 +55,8 @@ void cds_hlist_del_rcu(struct cds_hlist_node *elem) * This must be done while rcu_read_lock() is held. */ #define cds_hlist_for_each_rcu(pos, head) \ - for (pos = rcu_dereference((head)->next); pos != NULL; \ - pos = rcu_dereference(pos->next)) + for (pos = rcu_dereference((head)->next); (pos) != NULL; \ + pos = rcu_dereference((pos)->next)) /* * cds_hlist_for_each_entry_rcu takes 4 arguments, while the Linux @@ -66,16 +66,16 @@ void cds_hlist_del_rcu(struct cds_hlist_node *elem) */ #define cds_hlist_for_each_entry_rcu(entry, pos, head, member) \ for (pos = rcu_dereference((head)->next), \ - entry = cds_hlist_entry(pos, __typeof__(*entry), member); \ - pos != NULL; \ - pos = rcu_dereference(pos->next), \ - entry = cds_hlist_entry(pos, __typeof__(*entry), member)) + entry = cds_hlist_entry(pos, __typeof__(*(entry)), member); \ + (pos) != NULL; \ + pos = rcu_dereference((pos)->next), \ + entry = cds_hlist_entry(pos, __typeof__(*(entry)), member)) #define cds_hlist_for_each_entry_rcu_2(entry, head, member) \ for (entry = cds_hlist_entry_safe(rcu_dereference((head)->next), \ - __typeof__(*entry), member); \ - entry != NULL; \ - entry = cds_hlist_entry_safe(rcu_dereference(entry->member.next), \ - __typeof__(*entry), member)) + __typeof__(*(entry)), member); \ + (entry) != NULL; \ + entry = cds_hlist_entry_safe(rcu_dereference((entry)->member.next), \ + __typeof__(*(entry)), member)) #endif /* _URCU_RCUHLIST_H */