#include <cstdio>
#include <cstring>

enum { MAXPREC = 0 };

const char s[] = "";

int
main(void)
{
	int prec = -1;

	const char *sptr0 = (const char *)memchr(s, 0, size_t(prec));
	printf("prec=%d size_t(prec)=%zu %p %p %p %p\n", prec, size_t(prec), s, (const char *)memchr(s, 0, size_t(-1)), (const char *)memchr(s, 0, size_t(prec)), sptr0);

	for (prec = -1; prec <= MAXPREC; prec++) {
		printf("%zu ", strnlen(s, size_t(prec)));

		const char *sptr = (const char *)memchr(s, 0, size_t(prec));
		printf("prec=%d size_t(prec)=%zu %p %p %p %p\n", prec, size_t(prec), s, (const char *)memchr(s, 0, size_t(-1)), (const char *)memchr(s, 0, size_t(prec)), sptr);
		printf("(%p/%p) %zu\n", s, sptr, sptr ? sptr - s : size_t(prec));
	}

	fflush(stdout);
	return ferror(stdout);
}
