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