One arg to matched() is supposed to be an int32.
diff --git a/match.c b/match.c
index f8c4de6..89e5c52 100644
--- a/match.c
+++ b/match.c
@@ -102,7 +102,7 @@
  * have only literal data.
  **/
 static void matched(int f, struct sum_struct *s, struct map_struct *buf,
-		    OFF_T offset, int i)
+		    OFF_T offset, int32 i)
 {
 	int32 n = offset - last_match; /* max value: block_size (int32) */
 	int32 j;