busybox zcat errors
Hi, zcat in busybox is reporting CRC errors on good files. The problem
comes from code similar to this:
richard@orion:/build/tmp$ gcc -v
Reading specs from /usr/lib/gcc-lib/ia64-linux/2.96-ia64-000717/specs
gcc version 2.96-ia64-000717 snap 001117
richard@orion:/build/tmp$ cat crc2.c
#include <stdio.h>
int main()
{
unsigned char buf[4] = { 0xe9, 0x6c, 0xcf, 0x45 };
unsigned long crc = 0x169330baL;
printf("buf = %x\n", buf[0] << 24 | buf[1] << 16 | buf[2] << 8 | buf[3]);
printf("crc ^ 0xffffffffL = %lx\n", (crc ^ 0xffffffffL));
if ((buf[0] << 24 | buf[1] << 16 | buf[2] << 8 | buf[3]) != (crc ^ 0xffffffffL))
printf("Oops!\n");
return 0;
}
richard@orion:/build/tmp$ gcc -Wall -o crc crc2.c
richard@orion:/build/tmp$ ./crc
buf = e96ccf45
crc ^ 0xffffffffL = e96ccf45
Oops!
Compiler bug?
Richard
Reply to: