eclipse-cyclonedds / cyclonedds-cxx

Other
96 stars 75 forks source link

Fix compilation error on RedHat when compiling with -Werror=sign-conversion #508

Closed e-hndrks closed 1 month ago

e-hndrks commented 1 month ago

The following compilation error was generated on RedHat platforms with older gcc compilers (e.g. gcc8.4) when compiling with the -Werror=sign-conversion: "conversion to 'unsigned int' from 'int' may change the sign of the result" This was caused by an implicit promotion to int32_t from the result of a logical AND operator on an unsigned char with a uint32_t as the mask. A subsequent logical OR on this result with an unsigned char shifted by four bits would cause the signed/unsigned conflict. By making sure all parameters are promoted to type int, we avoid this situation.