the data types for float and double are signed and thus a warning about something unsigned sounds erronous to me.
compiling:
C:\SW_TOOLS-trunk\compilers\c6000_7_6_0\bin\cl6x.exe file.c --check_misra=required,advisory,-1.1,-6.3 "file.c", line 16: warning: (MISRA-C:2004 12.9/R) The unary minus operator shall not be applied to an expression whose underlying type is unsigned "file.c", line 17: warning: (MISRA-C:2004 12.9/R) The unary minus operator shall not be applied to an expression whose underlying type is unsigned "file.c", line 18: warning: (MISRA-C:2004 12.9/R) The unary minus operator shall not be applied to an expression whose underlying type is unsigned "file.c", line 20: warning: (MISRA-C:2004 12.9/R) The unary minus operator shall not be applied to an expression whose underlying type is unsigned "file.c", line 21: warning: (MISRA-C:2004 12.9/R) The unary minus operator shall not be applied to an expression whose underlying type is unsigned "file.c", line 22: warning: (MISRA-C:2004 12.9/R) The unary minus operator shall not be applied to an expression whose underlying type is unsigned
file.c:#
extern void a(void); #define F32_VALUE_1 (-10.0f) #define F32_VALUE_2 (-11.0f) #define F32_VALUE_3 (-11.3f) #define F64_VALUE_1 (-10.0) #define F64_VALUE_2 (-11.0) #define F64_VALUE_3 (-11.3) void a(void) { float f; double d; f = F32_VALUE_1; f = F32_VALUE_2; f = F32_VALUE_3; d = F64_VALUE_1; d = F64_VALUE_2; d = F64_VALUE_3; (void)(f); (void)(d); }