https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117476

--- Comment #5 from David Binderman <dcb314 at hotmail dot com> ---
(In reply to Sam James from comment #3)
> Please reduce with something like: -Werror=uninitialized
> -Werror=aggressive-loop-optimizations -Werror=sequence-point.

Thanks. Second try:

void  printf ();
void
platform_main_end(int crc)
{
 printf ("checksum = %X\n", crc);
}
int crc32_tab[256];
int crc32_context = 0xFFFFFFFFUL;

void
crc32_gentab ()
{

 int i, j;

 for (i = 0; i < 256; i++) {
  unsigned crc = i;
  for (j = 8; j ; j--)
   if (crc & 1)
    crc = (crc >> 1) ^ 0xEDB88320UL;
    else
    crc >>= 1;


  crc32_tab[i] = crc;
 }
}
void
crc32_byte (char b) {
 crc32_context =
  ((crc32_context >> 8) & 0x00FFFFFF) ^
  crc32_tab[(crc32_context ^ b) & 0xFF];
}
static void
transparent_crc (long val)
{
 {
 long __trans_tmp_1 = val;
 {
  crc32_byte ((__trans_tmp_1) );
  crc32_byte ((__trans_tmp_1>>8) );
  crc32_byte ((__trans_tmp_1>>16) );
  crc32_byte ((__trans_tmp_1>>24) );
  crc32_byte ((__trans_tmp_1>>32) );
  crc32_byte ((__trans_tmp_1>>40) );
  crc32_byte ((__trans_tmp_1>>48) );
  crc32_byte ((__trans_tmp_1>>56) );
 }}
}
int g_2 ;
void  main ()
{
    crc32_gentab();
    {
        g_2 = (-3);
    }
    transparent_crc(g_2);
    platform_main_end(crc32_context ^ 0xFFFFFFFFUL);
}

Reply via email to