https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114203
Bug ID: 114203
Summary: Miscompilation: A possible miscompilation in GCC 13
and 14 with option -Os
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: 141242068 at smail dot nju.edu.cn
Target Milestone: ---
The reproduce link: https://gcc.godbolt.org/z/T48jbo5e7
The reproducer (diff: `gcc-14 -O0` and `gcc-14 -Os`):
```
int foo (unsigned char b) {
int c = 0;
while (b) {
b >>= 1;
c++;
}
return c;
}
int main()
{
if (foo(0) != 0)
__builtin_abort ();
return 0;
}
```
I have sanitized this program using ubsan and asan, ubsan and asans outputs
nothing, so I think this is likely a miscompilation bug.