<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/66066>66066</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Wrong code at -Os on x86_64 (recent regression since 6ed152a)
</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 -Os produced the wrong code.
Bisected to 6ed152aff4aab6307ecaab64a544d0524ea5f50e, which was committed by @caojoshua
Compiler explorer: https://godbolt.org/z/aMEWqd9dP
```console
% cat a.c
int printf(const char *, ...);
int a, b, c;
long d;
const unsigned *e;
const unsigned **f[3];
static char(g)(unsigned h, int j) { return h > j ? h : h << j; }
static short k() {
char l = 1;
b = 0;
for (; b <= 3; b++) {
char *m = &l;
int *n = &c;
int i = 0;
for (; i < 3; i++)
f[i] = &e;
*n = g((*m)--, 7);
if (*n)
;
else {
for (; i < 9; i++)
f[0] || (d = 2);
if (0 < *n)
;
else
return 0;
}
printf("%d\n", *n);
}
return 1;
}
int main() {
k();
}
%
% clang -O0 a.c && ./a.out
-128
0
% clang -Os a.c && ./a.out
-128
0
-128
0
%
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVUuvqzYQ_jXDZhTkDJiEBYs8bnbV7e4uK2MMOCU4tU3Pvf31lU1CHueoUiVk7Hl88zEzHoRzuhuVqoDvgR8TMfne2Mr1wqz6SawGndSm-VUdBjF2KDyuvju8WtNMUjXoe4Uf1owdStOoFNgR2G5e99op6YONwUI1a06ibXMh6iJjGyXDJhc8zxvGKVeCt5wpoAN-9Fr2-CEcSnO5aB8g6l8IOZPCnI3rJ4HPcQ7mctWDsqh-XgdjlYVsh733VwfZDugEdOpMU5vBp8Z2QKd_gE7it28__mrK5vdnJCjY_EgzOjOom5Q4SuFRpHIW6NHj1erRt0DbYOpR9sIi0C7wT9MUqIRs_7AWQV6HRS7yISStWY4zzjTGYjQBS_2HDmjXAt9nwI-LlfPCaxmpAG27wIG2i1MfogcuZ6ASYbNHq_xkR-wRsm94RshOcb-L6wGyA54h2yNsji_4rjfW459A2xvQrMU5BwNCdsT1QgqxjhL2kLQmpGobsOs50hGzeALax-cFFpfkXiISUDE8wWP8KKDdeNfKT1r9TgHxmUVQH2YKeqHwsEQMqdbAj_cI6gVpid3FnGwDU6BytQoZ3zy3QuTT4mwzvgV5sVKDU69J-IJx-SXjQJZFspsDbA7BpYn06J3KnQyLaF9QeiM107qdb93zmtSlV8JhuSJABMQb4Icxbh-xHr5PnjfkRw8tulDLi9Dj5967teNnFyD-dIvjCFt9Z-Euh0ICFZiGaZCayc92qzVt5x377Oj-j-NXSG9zJmmqrCmzUiSqWhdlztf5JqOkr9q6zTe5qFu2kZzEumybreKipULWXJUq0RUxyli5pjXLaE2pYE3RsjzLZN6qlpWQM3URekiH4e9LGHyJdm5SVVGwokgGUavBxZFPNKoPjMpQHX5MbBV8VvXUOcjZoJ13DxSv_aCqH8vIv_8RzIg_t8UfRR46yiqpRo9WdVY5p82ITo9S3X8DoXjJZIfqbUpr3091Ks0F6BQC3l6rqzVnJT3QKdJ0QKf4Gf8GAAD__2OqxGM">