EnigmaTriton opened a new pull request #2305:
URL: https://github.com/apache/thrift/pull/2305


   C++ consider the overflow of a signed integer to be an undefined behavior 
(even with the "Signed Integers are Two’s Complement" update: 
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0907r1.html ).
   
   Instead of relying on tests(1) to discover if a compiler does not handle the 
signed integer overflow as we expect it to, we should add an explicit check 
before incrementing.
   
   (1) See 
https://github.com/apache/thrift/blob/c4e899a6d64aa97430ec9f7608d38db2095f6159/lib/cpp/src/thrift/async/TConcurrentClientSyncInfo.cpp#L33
   
   Quick check on https://godbolt.org/z/d7W8ds shows that Clang is able to 
optimize and just do the +1 so modern compilers should be able to keep the same 
preformances.
   
   In addition, some company rules might require code to do just that:
   
https://wiki.sei.cmu.edu/confluence/display/c/INT32-C.+Ensure+that+operations+on+signed+integers+do+not+result+in+overflow


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to