Some of these are actually really good and are less than perfect code that I've written, but one error has me wondering. It's flagging errors in my sprintf routines of the form:
error: format '%d' expects argument of type 'int', but argument 2 has type 'int32_t' {aka 'long int'} [-Werror=format=]
error: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'uint32_t' {aka 'long unsigned int'} [-Werror=format=]
This compiled fine before, and so now I'm not sure whether the old compiler was missing the error, or the new compiler is not quite right.
ints should be 32 bit, so a format string of %d, %u, %x etc should expect a 32 bit integer, but this seems to indicate that int != int32_t, which it's calling a 'long int'. One thing that is different is that newlib has been built with C99 I/O format support - could this be it?
Any ideas appreciated