<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/122496>122496</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang] Miscompilation at -O2/3
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
cardigan1008
</td>
</tr>
</table>
<pre>
This code prints 0 at `-O0/1` and triggers SIGKILL at `-O2/3`:
```c
int printf(const char *, ...);
int a;
short b, c;
long e;
int f[8][1];
unsigned g;
int h(int i) {
long d = 0;
for (; (a -= i) >= 0; d += 6)
;
return d;
}
void j() {
g = 0;
for (; h(90) + g <= 0; g++) {
int k = -1;
b = 0;
for (; k + g - -1 + b <= 3; b++)
f[b + 3][0] = c;
for (; b + g - 3 + e <= 8; e++)
;
for (; e <= 3;)
;
}
}
int main() {
j();
printf("%d\n", f[0][0]);
}
```
Compiler Explorer: https://godbolt.org/z/3x8Yc3fnW
It seems to be a recent regression.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx0VMuO8yYUfprjzVEsDPElCy9y-VONOlUXrVR1yS02Mw5EQEbTPn0FdpKZ6fwSMth8l8MnfHgIZrBa91DvoD4U_BpH53vJvTIDtxUhXSGc-qf_czQBpVMaL97YGJAgjwgNWf1OgB4raAhyqzB6MwzaB_zj6Zdfn56f7ygK9MigIcC2QPJoyDwkkK2xcRY-Ae2ksyGiHLlHoFugeyzLEugG2G6B8nkZRucjioSQ85fJ2QH1A3iCetdBfYB6V6Upb1xtPrTC4QEcgXZpNkA3CG36jJjVFAI7IJmhiCeXquqA7dLEcZV2Zxb7cUMmEt2ltybVnXiINwWv49VbVPM7tAcg2zdnFL4k3Q_2w0-dU7UbkrF0l3H7u_WQnNN4CCGmo71muVV100MUnw0-Wbwu0itcVXkpbi4sbYu7y0LFnLXIUDYnTqA-ZAf5rYO4O7C80jeDvKv_b7CofJDQH2v6BopzuvMzZXDmxn5JeUn9xrjfQqAUaK2g3tu83OcDksfR7qTF5Haf5-u9d-eLmbTHH--XyXntgW1xjPES0h9Aj0CPg1PCTbF0fgB6_Df9IO_d35Kd7F-zxlPEoPU5YHQoNHL0Wmob0evB6xCMsyUWqmdqwza80H3Vsqam3boixdhzoSupar5mTGy6tm2EqsiJad4xqsS6K0xPCa1JVZGqJYQ0JRetaERTN604rWUrYU30mZupnKa3c6qyMCFcdV9Rut40xcSFnkLuHJTKidsh5VQfCt8nwkpchwBrMpkQw0MimjjldjMz6gP-ZoLMYfFonE0NY-kWxdVP_ZfITByvopTuDPSYNJdpdfHuRcsI9JhrDKknzWW-9fS_AAAA__-yqUmm">