https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93243
--- Comment #5 from Leo Yuriev ---
Created attachment 47658
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47658=edit
testcase makefile
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93243
--- Comment #4 from Leo Yuriev ---
Created attachment 47657
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47657=edit
testcase source code
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93243
--- Comment #3 from Leo Yuriev ---
> (a) < (b) is not equal to ((a) - (b) < 0)
> Compiler will trait them differently.
Yes, of course. Moreover, in the second case, correct sorting requires limiting
the range of keys to avoid overflow when
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93243
--- Comment #2 from Hongtao.liu ---
> The diffs in the source code are:
> #if CASE & 1
> #define CMP(a, b) ((a) < (b))
> #else
> #define CMP(a, b) (((a) - (b)) < 0)
> #endiF
>
(a) < (b) is not equal to ((a) - (b) < 0)
Compiler will trait them