29#if defined(_M_IX86) && defined(__VS_PROJECT__) && (_MSC_FULL_VER < 194133923)
34#define ULONG_OVERFLOW ULONG_MAX
35#define ULONGLONG_OVERFLOW ULLONG_MAX
37#define ULONG_OVERFLOW 0ul
38#define ULONGLONG_OVERFLOW 0x8000000000000000ull
42long cast_float_to_long(
float f)
48unsigned long cast_float_to_ulong(
float f)
50 return (
unsigned long)
f;
54long cast_double_to_long(
double d)
60unsigned long cast_double_to_ulong(
double d)
62 return (
unsigned long)
d;
66long long cast_float_to_longlong(
float f)
72unsigned long long cast_float_to_ulonglong(
float f)
74 return (
unsigned long long)
f;
78long long cast_double_to_longlong(
double d)
84unsigned long long cast_double_to_ulonglong(
double d)
86 return (
unsigned long long)
d;
99 ok_eq_long(cast_float_to_long(2147483500.0f), 2147483520l);
100 ok_eq_long(cast_float_to_long(2147483583.999f), 2147483520l);
101 ok_eq_long(cast_float_to_long(-2147483583.999f), -2147483520l);
113 ok_eq_ulong(cast_float_to_ulong(2147483648.0f), 2147483648ul);
114 ok_eq_ulong(cast_float_to_ulong(4294967150.0f), 4294967040ul);
126 ok_eq_ulong(cast_float_to_ulong(-10.0f), (
unsigned long)-10);
127 ok_eq_ulong(cast_float_to_ulong(-1147483648.0f), (
unsigned long)-1147483648ll);
128 ok_eq_ulong(cast_float_to_ulong(-2147483648.0f), (
unsigned long)-2147483648ll);
139 ok_eq_longlong(cast_float_to_longlong(9223371761976868863.9999f), 9223371487098961920ll);
141 ok_eq_longlong(cast_float_to_longlong(-9223371761976868863.9999f), -9223371487098961920ll);
151 ok_eq_ulonglong(cast_float_to_ulonglong(9223371487098961920.0f), 9223371487098961920ull);
152 ok_eq_ulonglong(cast_float_to_ulonglong(9223372036854775808.0f), 9223372036854775808ull);
153 ok_eq_ulonglong(cast_float_to_ulonglong(18446743523953737727.9f), 18446742974197923840ull);
162 ok_eq_ulonglong(cast_float_to_ulonglong(-1.0f), 18446744073709551615ull);
171 ok_eq_ulonglong(cast_float_to_ulonglong(-10.0f), (
unsigned long long)-10);
172 ok_eq_ulonglong(cast_float_to_ulonglong(-1147483648.0f), (
unsigned long long)-1147483648ll);
173 ok_eq_ulonglong(cast_float_to_ulonglong(-2147483648.0f), (
unsigned long long)-2147483648ll);
174 ok_eq_ulonglong(cast_float_to_ulonglong(-9223371761976868863.9f), (
unsigned long long)-9223371487098961920);
175 ok_eq_ulonglong(cast_float_to_ulonglong(-9223371761976868864.0f), (
unsigned long long)(-9223372036854775807ll - 1));
176 ok_eq_ulonglong(cast_float_to_ulonglong(-9223372036854775808.0f), (
unsigned long long)(-9223372036854775807ll - 1));
191 ok_eq_long(cast_double_to_long(2147483647.99999), 2147483647l);
192 ok_eq_long(cast_double_to_long(-2147483647.99999), -2147483647l);
202 ok_eq_ulong(cast_double_to_ulong(0.999999999), 0ul);
203 ok_eq_ulong(cast_double_to_ulong(2147483648.0), 2147483648ul);
204 ok_eq_ulong(cast_double_to_ulong(4294967295.0), 4294967295ul);
216 ok_eq_ulong(cast_double_to_ulong(-10.0), (
unsigned long)-10);
217 ok_eq_ulong(cast_double_to_ulong(-1147483648.0), (
unsigned long)-1147483648ll);
218 ok_eq_ulong(cast_double_to_ulong(-2147483648.0), (
unsigned long)-2147483648ll);
229 ok_eq_longlong(cast_double_to_longlong(9223372036854775295.9), 9223372036854774784ll);
231 ok_eq_longlong(cast_double_to_longlong(-9223372036854775295.9), -9223372036854774784ll);
241 ok_eq_ulonglong(cast_double_to_ulonglong(9223372036854774784.0), 9223372036854774784ull);
242 ok_eq_ulonglong(cast_double_to_ulonglong(9223372036854775808.0), 9223372036854775808ull);
243 ok_eq_ulonglong(cast_double_to_ulonglong(18446744073709550591.9), 18446744073709549568ull);
253 ok_eq_ulonglong(cast_double_to_ulonglong(-1.0), 18446744073709551615ull);
262 ok_eq_ulonglong(cast_double_to_ulonglong(-10.0), (
unsigned long long)-10);
263 ok_eq_ulonglong(cast_double_to_ulonglong(-1147483648.0), (
unsigned long long)-1147483648ll);
264 ok_eq_ulonglong(cast_double_to_ulonglong(-2147483648.0), (
unsigned long long)-2147483648ll);
265 ok_eq_ulonglong(cast_double_to_ulonglong(-9223372036854775000.0), (
unsigned long long)-9223372036854774784ll);
266 ok_eq_ulonglong(cast_double_to_ulonglong(-9223372036854775808.0), (
unsigned long long)(-9223372036854775807ll - 1));
#define ok_eq_ulong(value, expected)
#define ok_eq_longlong(value, expected)
#define ok_eq_long(value, expected)
#define ok_eq_ulonglong(value, expected)
#define ULONGLONG_OVERFLOW
void __declspec(noinline) __cdecl _free_base(void *const block)