/* PR middle-end/118415 */ /* { dg-do run } */ /* { dg-options "-O2" } */ unsigned char crc_table_for_crc_8_polynomial_0x7[2] = { 0xff, 0xff }; static unsigned char foo (unsigned char byte, unsigned char crc) { unsigned int i; crc ^= byte; for (i = 0; i < 8; i++) crc = (crc << 1) ^ ((crc >> 7) ? 0x07 : 0); return crc; } int main () { volatile unsigned char byte = 1; volatile unsigned char crc = 0; crc = foo (byte, crc); if (__CHAR_BIT__ == 8 && crc != 7) __builtin_abort (); }