The VC6 compiler has slightly flaky support for __int64 and chokes on util.c
when using the 64-bit implementation of drand48, so switch it to the 32-bit
version instead.
return ldexp(*random_state, -48);
#else
+ {
U32 accu;
U16 temp[2];
return ldexp((double) random_state->seed[0], -48) +
ldexp((double) random_state->seed[1], -32) +
ldexp((double) random_state->seed[2], -16);
+ }
#endif
}
/* perl.h undefs HAS_QUAD if IV isn't 64-bit */
#ifdef U64TYPE
-/* use a faster implementation when quads are available */
-#define PERL_DRAND48_QUAD
+# if !defined(_MSC_VER) || _MSC_VER >= 1300
+/* use a faster implementation when quads are available,
+ * but not with VC6 on Windows */
+# define PERL_DRAND48_QUAD
+# endif
#endif
#ifdef PERL_DRAND48_QUAD