From bca7b3f7765b40e40d616f50ea26a86e9ffec28c Mon Sep 17 00:00:00 2001 From: dholland Date: Sat, 13 Oct 2012 19:39:57 +0000 Subject: Add strategic assertion, now passes -Wstrict-overflow. --- backgammon/backgammon/move.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'backgammon') diff --git a/backgammon/backgammon/move.c b/backgammon/backgammon/move.c index 8a87fa00..116c0fde 100644 --- a/backgammon/backgammon/move.c +++ b/backgammon/backgammon/move.c @@ -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('.'); -- cgit v1.2.3-56-ge451