<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/67287>67287</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Wrong code at -O2 on x86_64-linux_gnu since ddfee6d (recent regression)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
shao-hua-li
</td>
</tr>
</table>
<pre>
Clang at -O2 produced the wrong code.
Bisected to ddfee6d0b6979fc6e61fa5ac7424096c358746fb, which was committed by @goldsteinn
Compiler explorer: https://godbolt.org/z/rhfGPe4x5
```console
% cat a.c
int printf(const char *, ...);
long a, b, i;
char c, f;
int d;
short e;
int *g = &d;
unsigned h;
char j[1];
int main() {
short *k = &e;
for (; *g;)
;
for (; c <= 30; c++) {
if (b > 4)
i = a;
else
i = b;
(int)i + 6 || (*k = j != &f);
*g ^= h;
}
printf("%d\n", e);
}
%
% clang a.c -O0 && ./a.out
0
% clang a.c -O2 && ./a.out
1
%
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0VEuTozgM_jXiogplBDbhwCGPyR5nb3ucMsaAex07hc12z_76LZNHJ7M9VS6w9X36JPkhGYIZndYt8D3wYyaXOPm5DZP0m2mRG2uyzvc_24OVbkQZcfOd8DL7flG6xzhpfJ-9G1H5XufAjsB21-_eBK1i4njs-0Fr0bNONHUzKKFFMUguVV1RxRqhSr6tKzF0QAd8n4ya8F0GVP58NjFJdD8RKjZ624eojXP4HOjgzxdj9Yz642L9rGcodzjFeAlQ7oBOQKfR9523MffzCHT6F-g0T8Mff-rqgz8rgWDXobwL3uqblTgqGVHm6mowLuJlNi4OQNtEjagmOSPQLhWQ5zlQA-X-yrZpd2QC1vLMA1h9VLIND1uS7h-rMPk5on5BgXYjQnlEIPHJXNx6ij1Or_JvwPcF8OOLxFkaB7QFahDqmx3xGgxo9_dd_jMw4uBTfVso92sGCaHmDiJ-zVQI5SGJlWxdAu3X8RIX0QzJoUMov2H1Ioto1mTkkz6itkH_n9O9cIC2xkWgxiDQHgVCfYD6sGZ2L_ENgYpbrcPzkV0F0j7zbwmfnhCoj_fp4w4AERDvgR_cOj2gfpZ7uADxpyt1fVC5ws13llIAEpgDnWTul3jlsa_p9Bt68WuY-33O-rbsm7KRmW4L0XBBglVlNrV6y5q6U4IP_SALUpXishOFkr1uiErKTEuMStYQZ3VRsTIvtBBcCM6FqAqmBVRMn6WxubX_nNMDy0wIi25FTds6s7LTNqy9hcjpd1zBtEn8mM1t8tl0yxigYtaEGD5VoolWt389esu99XiHH1vxQ1Qba9zy8WN0CwbjlL43mXTEs1baRZz1OOsQjHdATbbMtv2lLZg4LV2u_BnolCLffpvL7N-0ikCnNd8AdFrr-S8AAP__BuZnDg">