On Wed, Oct 16, 2024 at 09:06:13PM +0300, Andy Shevchenko wrote: > On Wed, Oct 16, 2024 at 08:44:56AM -0700, Dave Hansen wrote: ... > > This doesn't _look_ right. See below. ... > Maybe more readable, but wouldn't it be theoretically buggy for u64? > I'm talking about the case when u64 == UINT_MAX, which will be true > in your case and false in mine. > > > const int pao_ID__ = (__builtin_constant_p(val) && > > ((val) == 1 || (int)(val) == -1)) ? > > > > (int)(val) : 0; This code _is_ buggy, thanks to my new test case. [ 66.161375] pcp -1 (0xffffffffffffffff) != expected 4294967295 (0xffffffff) Hence, I'll send a v2 with the test case and updated Subject. -- With Best Regards, Andy Shevchenko