https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100073
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2021-04-14 Assignee|unassigned at gcc dot gnu.org |msebor at gcc dot gnu.org Status|UNCONFIRMED |ASSIGNED Ever confirmed|0 |1 --- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> --- Looks like powerpc64 doesn't warn for the code, and apparently neither does aarch64 with -mabi=ilp32, due to what seems like a limitation in the uninit pass which sees this IL: <bb 3> [local count: 105119324]: doloop.6_16 = (unsigned int) indx_9(D); ivtmp.9_22 = (unsigned long) &MEM <int[10]> [(void *)&arr + -4B]; <<< &arr[-1] _27 = out_11(D) + 18446744073709551612; ivtmp.11_26 = (unsigned long) _27; <bb 4> [local count: 955630225]: # doloop.6_20 = PHI <doloop.6_17(6), doloop.6_16(3)> # ivtmp.9_7 = PHI <ivtmp.9_6(6), ivtmp.9_22(3)> <<< ivtmp.9_22(3) points to arr[-1] # ivtmp.11_24 = PHI <ivtmp.11_25(6), ivtmp.11_26(3)> ivtmp.9_6 = ivtmp.9_7 + 4; <<< &arr[0] _28 = (void *) ivtmp.9_6; _1 = MEM[(int *)_28]; <<< uninitialized read, no warning