[PATCH:xserver] Fix uninitialized variable warnings reported by clang. (was Re: [PATCH:xf86-video-ati] Fix uninitialized variable warnings reported by clang.)

Submitted by Thomas Klausner on Dec. 16, 2015, 7:36 a.m.

Details

Message ID 20151216073624.GG12655@danbala.tuwien.ac.at
State Accepted
Commit a221d4737c167589da44595c795d54f2c36b439a
Headers show
Series "Fix uninitialized variable warnings reported by clang." ( rev: 3 ) in X.org (DEPRECATED - USE GITLAB)

Not browsing as part of any series.

Commit Message

Thomas Klausner Dec. 16, 2015, 7:36 a.m.
On Wed, Dec 16, 2015 at 10:24:39AM +0900, Michel Dänzer wrote:
> Yes, but the xorg_list_for_each_entry macro needs the same treatment.
> With that,
> 
> Acked-by: Michel Dänzer <michel.daenzer@amd.com>

Thanks, new version attached.
 Thomas
From c6452b3bc84e2995cb8ef7b45bc239c0393a5552 Mon Sep 17 00:00:00 2001
From: Thomas Klausner <wiz@NetBSD.org>
Date: Tue, 15 Dec 2015 11:03:39 +0100
Subject: [PATCH:xserver 3/3] Fix uninitialized variable warnings reported by
 clang.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
Acked-by: Michel Dänzer <michel.daenzer@amd.com>
---
 include/list.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Patch hide | download patch | download mbox

diff --git a/include/list.h b/include/list.h
index 39f1985..1accf10 100644
--- a/include/list.h
+++ b/include/list.h
@@ -304,7 +304,8 @@  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)				\
+#define xorg_list_for_each_entry(pos, head, member)			\
+    pos = NULL;								\
     for (pos = __container_of((head)->next, pos, member);		\
 	 &pos->member != (head);					\
 	 pos = __container_of(pos->member.next, pos, member))
@@ -317,6 +318,7 @@  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)		\
+    pos = NULL;								\
     for (pos = __container_of((head)->next, pos, member),		\
 	 tmp = __container_of(pos->member.next, pos, member);		\
 	 &pos->member != (head);					\

Comments

Adam Jackson <ajax@nwnk.net> writes:

> Oops.  This turns out to cause a crash on init, I've pushed a revert
> until I figure out why.

The patch turns one statement into two; presumably that matters
somewhere.