From 8f8d756c5a29217ff79154caa1696b6e572d186f Mon Sep 17 00:00:00 2001
From: Ben Gamari <bgamari.foss@gmail.com>
Date: Mon, 3 Jul 2017 19:07:59 -0400
Subject: [PATCH] rts: Fix uninitialised variable uses

Strangely gcc 5.4 compiling on amd64 (nixos) complained about these.
Both warnings look correct, so I'm not sure why we haven't been seeing
these up until now.

Test Plan: Validate

Reviewers: simonmar, austin, erikd

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3693
---
 rts/Interpreter.c | 2 +-
 rts/sm/MarkWeak.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/rts/Interpreter.c b/rts/Interpreter.c
index a2f0b5898e0b..a22e966ff3ab 100644
--- a/rts/Interpreter.c
+++ b/rts/Interpreter.c
@@ -285,7 +285,7 @@ interpretBCO (Capability* cap)
     // that these entities are non-aliasable.
     register StgPtr       Sp;    // local state -- stack pointer
     register StgPtr       SpLim; // local state -- stack lim pointer
-    register StgClosure   *tagged_obj = 0, *obj;
+    register StgClosure   *tagged_obj = 0, *obj = NULL;
     uint32_t n, m;
 
     LOAD_THREAD_STATE();
diff --git a/rts/sm/MarkWeak.c b/rts/sm/MarkWeak.c
index 691e56af5f3c..9a077b3d146c 100644
--- a/rts/sm/MarkWeak.c
+++ b/rts/sm/MarkWeak.c
@@ -364,7 +364,7 @@ static void tidyThreadList (generation *gen)
 static void checkWeakPtrSanity(StgWeak *hd, StgWeak *tl)
 {
     StgWeak *w, *prev;
-    for (w = hd; w != NULL; prev = w, w = w->link) {
+    for (prev = NULL, w = hd; w != NULL; prev = w, w = w->link) {
         ASSERT(INFO_PTR_TO_STRUCT(UNTAG_CLOSURE((StgClosure*)w)->header.info)->type == WEAK
             || UNTAG_CLOSURE((StgClosure*)w)->header.info == &stg_DEAD_WEAK_info);
         checkClosure((StgClosure*)w);
-- 
GitLab