https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94846
--- Comment #2 from Gabriel Ravier <gabravier at gmail dot com> ---
More notes :
This seems to be generic to all targets, I've also been able to verify it on
ARM.
This only occurs when p is a pointer. This code :
unsigned f(unsigned p, unsigned x)
{
unsigned u = p;
p += x;
if (u > p)
++p;
return p;
}
results in
f(unsigned int, unsigned int):
add edi, esi
mov eax, edi
adc eax, 0
ret
with both GCC and LLVM
