Module Name:    src
Committed By:   dholland
Date:           Sat Oct 13 19:39:57 UTC 2012

Modified Files:
        src/games/backgammon/backgammon: move.c

Log Message:
Add strategic assertion, now passes -Wstrict-overflow.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/games/backgammon/backgammon/move.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/games/backgammon/backgammon/move.c
diff -u src/games/backgammon/backgammon/move.c:1.12 src/games/backgammon/backgammon/move.c:1.13
--- src/games/backgammon/backgammon/move.c:1.12	Sat Oct 13 19:19:38 2012
+++ src/games/backgammon/backgammon/move.c	Sat Oct 13 19:39:57 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: move.c,v 1.12 2012/10/13 19:19:38 dholland Exp $	*/
+/*	$NetBSD: move.c,v 1.13 2012/10/13 19:39:57 dholland Exp $	*/
 
 /*
  * Copyright (c) 1980, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)move.c	8.1 (Berkeley) 5/31/93";
 #else
-__RCSID("$NetBSD: move.c,v 1.12 2012/10/13 19:19:38 dholland Exp $");
+__RCSID("$NetBSD: move.c,v 1.13 2012/10/13 19:39:57 dholland Exp $");
 #endif
 #endif /* not lint */
 
@@ -167,6 +167,14 @@ move(struct move *mm, int okay)
 		writec('-');
 		wrint(mm->g[i] = cg[i]);
 		makmove(mm, i);
+
+		/*
+		 * This assertion persuades gcc 4.5 that the loop
+		 * doesn't result in signed overflow of i. mvlim
+		 * isn't, or at least shouldn't be, changed by makmove
+		 * at all.
+		 */
+		assert(mm->mvlim >= 0 && mm->mvlim <= 5);
 	}
 	writec('.');
 

Reply via email to