Alexey Serbin has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/21396 )

Change subject: [g++11] Fix DecrementIntCell for g++10 and g++11
......................................................................

[g++11] Fix DecrementIntCell for g++10 and g++11

There seems to be a compiler bug, that optimizes out the safety check
for INT_MIN in the DecrementIntCell function. It appears on RHEL 9.2
with g++ 11.4.1. Only in Release build. For more infoi, see:

https://stackoverflow.com/questions/78424303/g-optimizes-away-check-for-int-min-in-release-build

The issue seems to be fixed in g++12 and not yet present in g++9.

Solution:
Slightly change the function to ensure it is compiled correctly.
This modification should not alter the correct optimized code.

Basically, any change where the compiler cannot perform the two
optimization steps (in this order) should address the issue:

+ if (x == INT_MIN) x = INT_MAX; else x -= 1; ====> x -= 1
(this is equivalent on the x86 platform).
+ if (x - 1 < x) ====> if (true)
(this equivalence holds only at the mathematical level).

Change-Id: Ia3cea2849a88c4d7e2587ceb805cd3258652e3c5
Reviewed-on: http://gerrit.cloudera.org:8080/21396
Tested-by: Alexey Serbin <ale...@apache.org>
Reviewed-by: Alexey Serbin <ale...@apache.org>
---
M src/kudu/common/key_util.cc
1 file changed, 1 insertion(+), 1 deletion(-)

Approvals:
  Alexey Serbin: Looks good to me, approved; Verified

--
To view, visit http://gerrit.cloudera.org:8080/21396
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ia3cea2849a88c4d7e2587ceb805cd3258652e3c5
Gerrit-Change-Number: 21396
Gerrit-PatchSet: 4
Gerrit-Owner: Zoltan Martonka <zmarto...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <ale...@apache.org>
Gerrit-Reviewer: Kudu Jenkins (120)

Reply via email to