From: Mathieu Desnoyers Date: Tue, 20 Apr 2021 20:20:44 +0000 (-0400) Subject: Fix: hlist header: use parenthesis around macro parameters X-Git-Tag: v0.13.0~10 X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=commitdiff_plain;h=c9f0b5df9f08a97da2aba43cdb4df2ee196056f7 Fix: hlist 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 hlist.h to follow this coding style. Signed-off-by: Mathieu Desnoyers Change-Id: I28425b620b7937f6b3a57d48d70ce097d0093e23 --- diff --git a/include/urcu/hlist.h b/include/urcu/hlist.h index 5e3c27d..c5ebbbe 100644 --- a/include/urcu/hlist.h +++ b/include/urcu/hlist.h @@ -46,7 +46,7 @@ void CDS_INIT_HLIST_HEAD(struct cds_hlist_head *ptr) /* Get typed element from list at a given position, keeping NULL pointers. */ #define cds_hlist_entry_safe(ptr, type, member) \ ({ \ - __typeof__(ptr) ____ret = ptr; \ + __typeof__(ptr) ____ret = (ptr); \ ____ret ? cds_hlist_entry(____ret, type, member) : NULL; \ }) @@ -72,12 +72,12 @@ void cds_hlist_del(struct cds_hlist_node *elem) } #define cds_hlist_for_each(pos, head) \ - for (pos = (head)->next; pos != NULL; pos = pos->next) + for (pos = (head)->next; (pos) != NULL; pos = (pos)->next) #define cds_hlist_for_each_safe(pos, p, head) \ for (pos = (head)->next; \ - (pos != NULL) && (p = pos->next, 1); \ - pos = p) + ((pos) != NULL) && (p = (pos)->next, 1); \ + pos = (p)) /* * cds_hlist_for_each_entry and cds_hlist_for_each_entry_safe take @@ -87,27 +87,27 @@ void cds_hlist_del(struct cds_hlist_node *elem) */ #define cds_hlist_for_each_entry(entry, pos, head, member) \ for (pos = (head)->next, \ - entry = cds_hlist_entry(pos, __typeof__(*entry), member); \ - pos != NULL; \ - pos = pos->next, \ - entry = cds_hlist_entry(pos, __typeof__(*entry), member)) + entry = cds_hlist_entry(pos, __typeof__(*(entry)), member); \ + (pos) != NULL; \ + pos = (pos)->next, \ + entry = cds_hlist_entry(pos, __typeof__(*(entry)), member)) #define cds_hlist_for_each_entry_safe(entry, pos, p, head, member) \ for (pos = (head)->next, \ - entry = cds_hlist_entry(pos, __typeof__(*entry), member); \ - (pos != NULL) && (p = pos->next, 1); \ - pos = p, \ + entry = cds_hlist_entry(pos, __typeof__(*(entry)), member); \ + ((pos) != NULL) && (p = (pos)->next, 1); \ + pos = (p), \ entry = cds_hlist_entry(pos, __typeof__(*entry), member)) #define cds_hlist_for_each_entry_2(entry, head, member) \ - for (entry = cds_hlist_entry_safe((head)->next, __typeof__(*entry), member); \ - entry != NULL; \ - entry = cds_hlist_entry_safe(entry->member.next, __typeof__(*entry), member)) + for (entry = cds_hlist_entry_safe((head)->next, __typeof__(*(entry)), member); \ + (entry) != NULL; \ + entry = cds_hlist_entry_safe((entry)->member.next, __typeof__(*(entry)), member)) #define cds_hlist_for_each_entry_safe_2(entry, e, head, member) \ - for (entry = cds_hlist_entry_safe((head)->next, __typeof__(*entry), member); \ - (entry != NULL) && (e = (cds_hlist_entry_safe(entry->member.next, \ - __typeof__(*entry), member)), 1); \ + for (entry = cds_hlist_entry_safe((head)->next, __typeof__(*(entry)), member); \ + ((entry) != NULL) && (e = (cds_hlist_entry_safe((entry)->member.next, \ + __typeof__(*(entry)), member)), 1); \ entry = e) #endif /* _KCOMPAT_HLIST_H */