0030720: Coding - fix HashCode() function problems that are not resolved with 30550
authortiv <tiv@opencascade.com>
Tue, 24 Sep 2019 13:42:21 +0000 (16:42 +0300)
committerbugmaster <bugmaster@opencascade.com>
Wed, 25 Sep 2019 12:58:08 +0000 (15:58 +0300)
commit467e864adf5f2f27cc1b6b6e88b8a2cf7ce86783
tree0fcd6a70327b84d97f11fef03c7bb0877c43ba3f
parent0a5ec5f380f52870caa2800e58d77a79a7b1f253
0030720: Coding - fix HashCode() function problems that are not resolved with 30550

Undefined behavior caused by left shift operations in TopLoc_Location::HashCode() function is fixed.
HashCode() function overload for Standard_Size type is made available only if Standard_Size and "unsigned int" are different types (it is usually true for 64-bit platforms). The overload for "unsigned int" is made simple non-templated function (so it behaves the same on 32-bit and 64-bit platforms).
HashCode() function overload for Standard_Utf32Char type is made available only if Standard_Utf32Char and "unsigned int" are different types (it is needed for some old compilers).
src/Standard/Standard_Integer.hxx
src/Standard/Standard_Size.hxx
src/TopLoc/TopLoc_Location.cxx