On 27/03/14 09:52, Florian Weimer wrote:> On 03/27/2014 08:44 AM, Andrew Haley wrote: > >> On 03/26/2014 03:05 PM, Daniel Gutson wrote: >> >>> assigning a negative literal to an unsigned variable issues no warning: >>> >>> >>> unsigned int x; >>> x =- 4; >>> >>> This is specially important in typos when -= was intended instead of =- >>> >>> Would be acceptable if I add a new warning to handle this, i.e. >>> -Wnegative-to-unsigned >>> or alike? >> >> Assigning a negative literal to an unsigned variable is well-defined >> standard C. Is it really appropriate to warn for correct code? > > Yes, this warning needs to take whitespace into account. But then, I suppose > it would be fine. >
This is already warned by -Wconversion/-Wsign-conversion since at least GCC 4.6 (but I think probably since GCC 4.3): test.c: In function 'foo': test.c:4:8: warning: negative integer implicitly converted to unsigned type [-Wsign-conversion] x =- 4; ^ There are some known bugs in -Wconversion and nobody working on them, so if you are still interested in helping, I can give you some hints on where your help will be very welcome. Cheers, Manuel.