3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00

remove dependency on ARRAYSIZE for issue #1616

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2018-08-15 22:26:14 -07:00
parent 95963f71f4
commit 2b2f193f2b
11 changed files with 137 additions and 49 deletions

View file

@ -23,8 +23,6 @@ Revision History:
#if defined(_WINDOWS) || defined(_CYGWIN)
// Does this redefinition work?
#define ARRAYSIZE_TEMP ARRAYSIZE
#undef ARRAYSIZE
#include <windows.h>
@ -68,8 +66,6 @@ public:
}
};
#undef ARRAYSIZE
#define ARRAYSIZE ARRAYSIZE_TEMP
#undef max
#undef min

View file

@ -43,6 +43,7 @@ class string_buffer {
m_capacity = new_capacity;
m_buffer = new_buffer;
}
static const unsigned c_buffer_size = 24;
public:
string_buffer():
@ -80,9 +81,9 @@ public:
}
void append(int n) {
char buffer[24];
char buffer[c_buffer_size];
#ifdef _WINDOWS
sprintf_s(buffer, ARRAYSIZE(buffer), "%d", n);
sprintf_s(buffer, c_buffer_size, "%d", n);
#else
sprintf(buffer, "%d", n);
#endif
@ -90,9 +91,9 @@ public:
}
void append(unsigned n) {
char buffer[24];
char buffer[c_buffer_size];
#ifdef _WINDOWS
sprintf_s(buffer, ARRAYSIZE(buffer), "%d", n);
sprintf_s(buffer, c_buffer_size, "%d", n);
#else
sprintf(buffer, "%d", n);
#endif
@ -100,9 +101,9 @@ public:
}
void append(long n) {
char buffer[24];
char buffer[c_buffer_size];
#ifdef _WINDOWS
sprintf_s(buffer, ARRAYSIZE(buffer), "%ld", n);
sprintf_s(buffer, c_buffer_size, "%ld", n);
#else
sprintf(buffer, "%ld", n);
#endif

View file

@ -49,12 +49,18 @@ static_assert(sizeof(int64_t) == 8, "64 bits");
#ifdef _WINDOWS
#define SSCANF sscanf_s
#define SPRINTF sprintf_s
#define SPRINTF_D(_buffer_, _i_) sprintf_s(_buffer_, Z3_ARRAYSIZE(_buffer_), "%d", _i_)
#define SPRINTF_U(_buffer_, _u_) sprintf_s(_buffer_, Z3_ARRAYSIZE(_buffer_), "%u", _u_)
#define _Exit exit
#else
#define SSCANF sscanf
#define SPRINTF sprintf
#define SPRINTF_D(_buffer_, _i_) sprintf(_buffer_, "%d", _i_)
#define SPRINTF_U(_buffer_, _u_) sprintf(_buffer_, "%u", _u_)
#endif
#define VEC2PTR(_x_) ((_x_).size() ? &(_x_)[0] : 0)
#ifdef _WINDOWS
@ -142,9 +148,7 @@ static inline uint64_t shift_left(uint64_t x, uint64_t y) {
template<class T, size_t N> char (*ArraySizer(T (&)[N]))[N];
// For determining the length of an array. See ARRAYSIZE() macro. This function is never actually called.
#ifndef ARRAYSIZE
#define ARRAYSIZE(a) sizeof(*ArraySizer(a))
#endif
#define Z3_ARRAYSIZE(a) sizeof(*ArraySizer(a))
template<typename IT>
void display(std::ostream & out, const IT & begin, const IT & end, const char * sep, bool & first) {