Fix uninitialized variable warnings reported by clang

v2: Move initializing pos into the first clause of the for statement. We
have to keep this macro equivalent to a plain for statement from the
user's perspective, otherwise callers need to {} things to keep control
flow correct. [ajax]

Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
Acked-by: Michel Dänzer <michel.daenzer@amd.com>
(cherry picked from commit 63f83d1b7f)
This commit is contained in:
Thomas Klausner 2016-01-05 12:51:41 -05:00 committed by Adam Jackson
parent 320b169c22
commit 88f2aa2940
1 changed files with 5 additions and 3 deletions

View File

@ -304,8 +304,9 @@ xorg_list_is_empty(struct xorg_list *head)
* @param member Member name of the struct xorg_list in the list elements.
*
*/
#define xorg_list_for_each_entry(pos, head, member) \
for (pos = __container_of((head)->next, pos, member); \
#define xorg_list_for_each_entry(pos, head, member) \
for (pos = NULL, \
pos = __container_of((head)->next, pos, member); \
&pos->member != (head); \
pos = __container_of(pos->member.next, pos, member))
@ -317,7 +318,8 @@ xorg_list_is_empty(struct xorg_list *head)
* See xorg_list_for_each_entry for more details.
*/
#define xorg_list_for_each_entry_safe(pos, tmp, head, member) \
for (pos = __container_of((head)->next, pos, member), \
for (pos = NULL, \
pos = __container_of((head)->next, pos, member), \
tmp = __container_of(pos->member.next, pos, member); \
&pos->member != (head); \
pos = tmp, tmp = __container_of(pos->member.next, tmp, member))