diff options
author | dholland <dholland@NetBSD.org> | 2012-10-13 19:39:57 +0000 |
---|---|---|
committer | dholland <dholland@NetBSD.org> | 2012-10-13 19:39:57 +0000 |
commit | bca7b3f7765b40e40d616f50ea26a86e9ffec28c (patch) | |
tree | fc8673f08ca9c3a408f145418a57f2c8f727681b | |
parent | 371d9b9cb447894f1345defd1e5dd3eb12827aa6 (diff) | |
download | bsdgames-darwin-bca7b3f7765b40e40d616f50ea26a86e9ffec28c.tar.gz bsdgames-darwin-bca7b3f7765b40e40d616f50ea26a86e9ffec28c.tar.zst bsdgames-darwin-bca7b3f7765b40e40d616f50ea26a86e9ffec28c.zip |
Add strategic assertion, now passes -Wstrict-overflow.
-rw-r--r-- | backgammon/backgammon/move.c | 12 |
1 files changed, 10 insertions, 2 deletions
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('.'); |