While moving from CGT 7.3.8 to CGT 8.3.9, we are facing an issue of sign conversion.
(a*b) >>n : If either a or b were signed and negative, with 'n' being positive, the result is unsigned
n+(a/b) : If either a or b were signed and negative, with 'n' being positive, the result is unsigned
With both (a*b) and (a/b) being handled as unsigned, the results are thrown off.
With CGT 7.3.8, (a*b) was handled as signed.
With CGT 8.3.9
- Is there a way to disable such a behavior. (or)
- Is there a compiler option to identify such sign conversions (in line with -Wsign-conversion, in gcc).