Следующий код не проходит проверку MISRA. Конкретное сообщение об ошибке:
(MISRA-C:2004 10.1/R) Значение выражения целочисленного типа должно не может быть неявно преобразован в другой базовый тип, если он не преобразование в более широкий целочисленный тип того же знака
typedef enum _MyEnum { One, Two } MyEnum;
MyEnum MyVariable;
int foo(void)
{
int result = 1;
if (One == MyVariable) // fails here with MISRA-C:2004 10.1/R
{
result = 2;
}
return result;
}
One
и MyVariable
?Изменить: Компилятор представляет собой компилятор TI "MSP430 C/C++ Compiler v4.0.0" с включенной проверкой правил MISRA.