私の CCS 6.1 ARM コンパイラ (LM3Sxxxx Stellaris 用) は警告をスローします:
「MISRA ルール 12.2。式の値は、標準が許可する評価の順序にかかわらず同じでなければならない」
次のコードの場合:
typedef struct {
...
uint32_t bufferCnt;
uint8_t buffer[100];
...
} DIAG_INTERFACE_T;
static DIAG_INTERFACE_T diagInterfaces[1];
...
DIAG_INTERFACE_T * diag = &diagInterfaces[0];
uint8_t data = 0;
diag->bufferCnt = 0;
diag->buffer[diag->bufferCnt++] = data; // line where warning is issued
...
コードに問題はありません。誤検知ですか、それとも私のバグですか?