diff --git a/src/borg/_crc32/slice_by_8.c b/src/borg/_crc32/slice_by_8.c index d58be1943..f1efbb37f 100644 --- a/src/borg/_crc32/slice_by_8.c +++ b/src/borg/_crc32/slice_by_8.c @@ -350,6 +350,7 @@ uint32_t crc32_slice_by_8(const void* data, size_t length, uint32_t previousCrc3 // enabling optimization (at least -O2) automatically unrolls the inner for-loop const size_t Unroll = 4; const size_t BytesAtOnce = 8 * Unroll; + const uint8_t* currentChar; // process 4x eight bytes at once (Slicing-by-8) while (length >= BytesAtOnce) @@ -386,7 +387,7 @@ uint32_t crc32_slice_by_8(const void* data, size_t length, uint32_t previousCrc3 length -= BytesAtOnce; } - const uint8_t* currentChar = (const uint8_t*) current; + currentChar = (const uint8_t*) current; // remaining 1 to 31 bytes (standard algorithm) while (length-- != 0) crc = (crc >> 8) ^ Crc32Lookup[0][(crc & 0xFF) ^ *currentChar++];