<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/70936>70936</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang hangs when compile at -O3 on x86_64
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
jun-wei-zeng
</td>
</tr>
</table>
<pre>
Compiler explorer: https://godbolt.org/z/PdsEMbY6b
When compile the following program using clang under `-O3`, it hangs.
```c
int a;
int b;
short c() {
volatile unsigned char d = 2;
int e = 1;
a = 0;
for (; a < 3; a++) {
b = 0;
for (; b < 10; b++)
do {
e -= 3;
d;
} while (e > 2);
}
for (int f = 0;;)
;
}
int main() {}
```
I found this bug exists on `clang-16.0.0`, `clang-17.0.1` and the latest `trunk`.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxkU89v4yoQ_mvGl5EtfjiOffChaRrpHZ76bk97WmEb23QJRICbbv_6FSRNnC5CNvMx8_ExzAjv1WSkbGGzg80-E0uYrWvfFpOfpco_pZmyzg6_22d7PCktHcqPk7ZOOuBPOIdw8sCfgB2AHSY7dFaHwroJ2OET2OG_wb_82_2oOiB7IE-X7_-zNNhf6DDMEkertT0rM-HJ2cmJIy4-Wr0WZsLFDNIhVCR_5VARYM-oAs7CTL7ANW_cTLO_2MoEFMB3d6u7WX62LmAPrAbWIGyvMOK71SJEYYtJiRmwn4XDAYHvkd3iESOfTChdoSIhZIWM1mE8hu_S5jPytAS2S_PhcMTur_gHhi4xUJLWN4qr62AfueKQmEdC_kAYx_ANge0ez3O8OLA63usFWaS-e8F2f11eBcUMjHe9fCUlEn5F3uKi_1Eos0r619bt6dbv-Q-OdjEDhll57JYJ5YfywaM1sRpSceS0KkhBrmVxR7cFKShUBEWKl6hFkD5Ej-AW8wsqUmRDy4eGNyKTLa2aui7LDS-zuW2olHXNWF03tOp7Vo68akbBNpLzcktkplpGGKeUUMrphpfFuCEl60bGJK3pQDmURB6F0oXW78fYDpnyfpHtljS8yrTopPap4RhLgoGx2Huujf55t0weSqLjZe8MQQUt20tLpOLH87qPRMD8lcfcfNTVz6rMFqfbb-2pwrx0RW-PwA6R9_rLT86-yT4AOySZHtghKf0TAAD__34bIFU">