From 675c77c36a1fba2973751d4e9c8f3ea073309348 Mon Sep 17 00:00:00 2001 From: Joel Teichroeb Date: Tue, 23 Nov 2010 18:01:40 -0800 Subject: [PATCH] Fix potentially undefined behavior Really this time. http://llvm.org/bugs/show_bug.cgi?id=8670 --- wayland/wayland-util.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/wayland/wayland-util.h b/wayland/wayland-util.h index 575e6578..ebac3051 100644 --- a/wayland/wayland-util.h +++ b/wayland/wayland-util.h @@ -94,19 +94,20 @@ int wl_list_empty(struct wl_list *list); ((char *)&(sample)->member - (char *)(sample))) #define wl_list_for_each(pos, head, member) \ - for (pos = __container_of((head)->next, pos, member); \ + for (pos = 0, pos = __container_of((head)->next, pos, member); \ &pos->member != (head); \ pos = __container_of(pos->member.next, pos, member)) #define wl_list_for_each_safe(pos, tmp, head, member) \ - for (pos = __container_of((head)->next, pos, member), \ + for (pos = 0, tmp = 0, \ + pos = __container_of((head)->next, pos, member), \ tmp = __container_of((pos)->member.next, tmp, member); \ &pos->member != (head); \ pos = tmp, \ tmp = __container_of(pos->member.next, tmp, member)) #define wl_list_for_each_reverse(pos, head, member) \ - for (pos = __container_of((head)->prev, pos, member); \ + for (pos = 0, pos = __container_of((head)->prev, pos, member); \ &pos->member != (head); \ pos = __container_of(pos->member.prev, pos, member))