https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98235
Bug ID: 98235 Summary: ice in decompose with -O3 -fallow-store-data-races Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: dcb314 at hotmail dot com Target Milestone: --- For this C source code: char tcube[3][9]; int cur_move; void perm_cube(void) { int i, j, k, tmp; for (; i < cur_move; i++) while (k-- >= 0) switch (j) { case 0: tmp = tcube[0][6]; tcube[2][8] = tcube[0][8]; tcube[0][8] = tmp; tmp = tcube[0][5]; tcube[0][5] = tcube[1][8]; tcube[1][8] = tcube[2][5]; tcube[2][5] = tcube[1][2]; tcube[1][2] = tcube[2][1]; tcube[2][1] = tcube[1][0]; tcube[0][6] = tmp; tmp = tcube[0][3]; tcube[0][3] = tcube[1][0]; tcube[1][0] = tcube[2][3]; tcube[2][3] = tcube[1][6]; tcube[1][6] = tmp; break; case 5: tmp = tcube[2][0]; tcube[2][0] = tcube[2][2]; tcube[2][2] = tcube[2][8]; tcube[2][3] = tmp; } } compiled as follows: $ /home/dcb/gcc/results/bin/gcc -c -w -O3 -fallow-store-data-races -w bug676.c does this: gcc: internal compiler error: Segmentation fault signal terminated program cc1 Please submit a full bug report gdb on cc1 says Program received signal SIGSEGV, Segmentation fault. 0x000000000109b2a2 in wide_int_ref_storage<true, true>::wide_int_ref_storage<int> (this=<optimized out>, x=<optimized out>, precision=<optimized out>) at ../../trunk.git/gcc/wide-int.h:1034 1034 : storage_ref (wi::int_traits <T>::decompose (scratch, precision, x)) (gdb) The bug appeared sometime before 20201111.