https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109031
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords|needs-reduction |
--- Comment #25 from Martin Liška <marxin at gcc dot gnu.org> ---
Ok, using the following reduction script:
https://github.com/marxin/gcc-util/blob/master/bisect/reduce-csmith.sh
I was able to get to:
$ cat pr109031.c
typedef unsigned char uint8_t;
typedef unsigned int uint32_t;
uint32_t crc32_context, g_50;
char transparent_crc_vname;
uint8_t g_44;
void crc32_byte(uint8_t b) { crc32_context = b; }
int main() {
g_50 = 0;
uint32_t *l_1155 = &g_50;
uint8_t *l_1162 = &g_44;
lbl_1206:
(*l_1155)++, (*l_1162)--;
if (g_44)
goto lbl_1206;
crc32_byte(g_50 >> 8);
uint32_t r = crc32_context ^ 5UL;
__builtin_printf("...checksum after hashing %u\n", r);
if (r != 4)
__builtin_abort();
return 0;
}
$ gcc -O2 pr109031.c && ./a.out
...checksum after hashing 5
Aborted (core dumped)
$ gcc-12 -O2 pr109031.c && ./a.out
...checksum after hashing 4
$ gcc pr109031.c && ./a.out
...checksum after hashing 4