aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-sato/puzzles/files/0001-palisade-Fix-warnings-with-clang-on-arm.patch
blob: 5351f8eb4e0b75e5d83ab219dc4d7052dddc5fc0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
From 6d8326275802a2e6e61d3e99460af6891ae8362f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 13 Jan 2016 23:10:19 -0800
Subject: [puzzles][PATCH] palisade: Fix warnings with clang on arm

ARM treats 'char' as unsigned char when 'char' is not qualified with
'signed' or 'unsigned' explicitly.

This results in warnings e.g.

palisade.c:531:22: error: comparison of constant -1 with expression of
type 'clue' (aka 'char') is always false
[-Werror,-Wtautological-constant-out-of-range-compare]
        if (clues[i] == EMPTY) continue;

Therefore, typcast the contant to char in such places to be explicit

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

 palisade.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/palisade.c b/palisade.c
index 984e616..2b9c25c 100644
--- a/palisade.c
+++ b/palisade.c
@@ -295,11 +295,11 @@ static void solver_connected_clues_versus_region_size(solver_ctx *ctx)
      * If p = q = 3 then the region has size exactly 2. */
 
     for (i = 0; i < wh; ++i) {
-        if (ctx->clues[i] == EMPTY) continue;
+        if (ctx->clues[i] == (char)EMPTY) continue;
         for (dir = 0; dir < 4; ++dir) {
             int j = i + dx[dir] + w*dy[dir];
             if (disconnected(ctx, i, j, dir)) continue;
-            if (ctx->clues[j] == EMPTY) continue;
+            if (ctx->clues[j] == (char)EMPTY) continue;
             if ((8 - ctx->clues[i] - ctx->clues[j] > ctx->params->k) ||
                 (ctx->clues[i] == 3 && ctx->clues[j] == 3 &&
                  ctx->params->k != 2))
@@ -317,7 +317,7 @@ static int solver_number_exhausted(solver_ctx *ctx)
     int changed = FALSE;
 
     for (i = 0; i < wh; ++i) {
-        if (ctx->clues[i] == EMPTY) continue;
+        if (ctx->clues[i] == (char)EMPTY) continue;
 
         if (bitcount[(ctx->borders[i] & BORDER_MASK)] == ctx->clues[i]) {
             for (dir = 0; dir < 4; ++dir) {
@@ -528,7 +528,7 @@ static int is_solved(const game_params *params, clue *clues,
     for (i = 0; i < wh; ++i) {
         if (dsf[i] == UNVISITED) dfs_dsf(i, params->w, border, dsf, TRUE);
         if (dsf_size(dsf, i) != k) goto error;
-        if (clues[i] == EMPTY) continue;
+        if (clues[i] == (char)EMPTY) continue;
         if (clues[i] != bitcount[border[i] & BORDER_MASK]) goto error;
     }
 
@@ -674,7 +674,7 @@ static char *new_game_desc(const game_params *params, random_state *rs,
     p = numbers;
     r = 0;
     for (i = 0; i < wh; ++i) {
-        if (numbers[i] != EMPTY) {
+        if (numbers[i] != (char)EMPTY) {
             while (r) {
                 while (r > 26) {
                     *p++ = 'z';
-- 
2.7.0