This commit is contained in:
Erik Svedäng 2019-12-18 12:11:50 +01:00
commit 50d91859c4

View File

@ -1,5 +1,4 @@
#if defined(WIN32) || defined(_WIN32) || \
defined(__WIN32) && !defined(__CYGWIN__)
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
#include <windows.h>
#include <BaseTsd.h>
typedef SSIZE_T ssize_t;
@ -14,12 +13,20 @@ typedef char *Pattern;
#if defined NDEBUG
#define CHK_INDEX(i, n)
#else
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
// The %zd format flag doesn't seem to work on Windows?
#define CHK_INDEX_FORMAT_STRING ":%u: bad index: %ld < %ld\n"
#else
#define CHK_INDEX_FORMAT_STRING ":%u: bad index: %zd < %zd\n"
#endif
#define CHK_INDEX(i, n) \
do { \
size_t __si = (size_t)i; \
size_t __ni = (size_t)n; \
if (!(__si < __ni)) { \
printf(__FILE__ ":%u: bad index: %zd < %zd\n", __LINE__, \
printf(__FILE__ CHK_INDEX_FORMAT_STRING, __LINE__, \
(ssize_t)i, (ssize_t)n); \
abort(); \
} \