This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6000 cl6x 7.6.0: MISRA 12.9 warning on unary minus even reporting for float & double constants

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);
}