diff --git a/byte/byte_diff.c b/byte/byte_diff.c index 70df17a..c96e971 100644 --- a/byte/byte_diff.c +++ b/byte/byte_diff.c @@ -6,6 +6,8 @@ * one[len-1]. When the strings are different, byte_diff does not read * bytes past the first difference. */ int byte_diff(const void* a, size_t len, const void* b) { +#if 0 + /* this gets miscompiled by gcc 4.3.2 on x86_64 */ register const unsigned char* s=a; register const unsigned char* t=b; register const unsigned char* u=t+len; @@ -18,4 +20,12 @@ int byte_diff(const void* a, size_t len, const void* b) { if (t==u) break; if ((j=((unsigned int)*s-*t))) break; ++s; ++t; } return j; +#else + size_t i; + for (i=0; i