{
        char *ptr, *pptr, *tmp;
        off_t off = 0;
-       int ret, flen, proglen, pass, ulen = 0;
+       unsigned int proglen;
+       int ret, flen, pass, ulen = 0;
        regmatch_t pmatch[1];
        unsigned long base;
        regex_t regex;
        }
 
        ptr = haystack + off - (pmatch[0].rm_eo - pmatch[0].rm_so);
-       ret = sscanf(ptr, "flen=%d proglen=%d pass=%d image=%lx",
+       ret = sscanf(ptr, "flen=%d proglen=%u pass=%d image=%lx",
                     &flen, &proglen, &pass, &base);
        if (ret != 4) {
                regfree(®ex);
        }
 
        assert(ulen == proglen);
-       printf("%d bytes emitted from JIT compiler (pass:%d, flen:%d)\n",
+       printf("%u bytes emitted from JIT compiler (pass:%d, flen:%d)\n",
               proglen, pass, flen);
        printf("%lx + <x>:\n", base);