unary minus operator applied to unsigned type, result still unsigned?
- From
Philip Oakley <philipoakley@iee.org>
- Date
- May 4, 2016, 22:59 UTC
- Message-ID
- <74B59A4DF45C45AF9CDCF6662DDAEF1E@PhilipOakley>
I'm working on building Git on Visual Studio as part of the Git for Windows capability.
The MSVC compiler is reporting:
1>..\sha1-lookup.c(100) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
1>..\sha1-lookup.c(316) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
the two lines of code are the same, and the message suggests a bad return value:
#100: return -lo-1;
#316: return -lo-1;
Should these be protected by an appropriate brackets/calculation (-1-lo) ? Or does gcc use an alternate assumption about unary minus conversion for functions returning int?
--
Philip