diff --git a/libs/minisat/Vec.h b/libs/minisat/Vec.h index 9e6d21174..c5c913be9 100644 --- a/libs/minisat/Vec.h +++ b/libs/minisat/Vec.h @@ -100,7 +100,13 @@ void vec<T,_Size>::capacity(Size min_cap) { Size add = max((min_cap - cap + 1) & ~1, ((cap >> 1) + 2) & ~1); // NOTE: grow by approximately 3/2 const Size size_max = std::numeric_limits<Size>::max(); if ( ((size_max <= std::numeric_limits<int>::max()) && (add > size_max - cap)) - || (((data = (T*)::reallocarray(data, (cap += add), sizeof(T))) == NULL) && errno == ENOMEM) ) + || ( +#ifdef _DEFAULT_SOURCE + ((data = (T*)::reallocarray(data, (cap += add), sizeof(T))) == NULL) +#else + ((data = (T*)::realloc(data, (cap += add) * sizeof(T))) == NULL) +#endif + && errno == ENOMEM) ) throw OutOfMemoryException(); }