shithub: puzzles

Download patch

ref: ff91d2d78d96441893acd1b1099726346e7f84cf
parent: d295a8a93c88bbd65ecfa57f4b70c9c4c6286e97
author: Khem Raj <raj.khem@gmail.com>
date: Wed Dec 30 18:53:36 EST 2015

rect: Fix compiler errors about uninitialized use of variables

error: 'r2.x' may be used uninitialized in this function

Its happening when using gcc 5.3 with musl C library. its considering
the case when case falls into default and immediately after exiting
this there is a check if (r1.h > 0 && r1.w > 0) where r1 element is
used but not assigned anything.

GCC is not noticing the control flow where the initilization will
always work due to assertion call can be a function call from libc

Signed-off-by: Khem Raj <raj.khem@gmail.com>

--- a/rect.c
+++ b/rect.c
@@ -1317,7 +1317,8 @@
                     if (ndirs > 0) {
                         int which, dir;
                         struct rect r1, r2;
-
+                        memset(&r1, 0, sizeof(struct rect));
+                        memset(&r2, 0, sizeof(struct rect));
                         which = random_upto(rs, ndirs);
                         dir = dirs[which];