0

このMISRA違反に直面しています:


定義:

#define A                 (1UL << 10)
#define INIT_A            ((A) | (1UL << 15))
#define INIT_A_MASK       (0xFFFFUL << 15)


#define IS_STATE_IFSET(state, val)  ((((state) & (val##_MASK)) == (val)) ? true : false)   //issue is here ?

発信者の詳細:

uint64_t state = 1234UL;
if (!IS_STATE_IFSET(state, INIT_A)) {
    printf("Hoo-Haa\n");
}

Misra-2012 がルール 20.12 違反を報告misra_c_2012_rule_20_12_violation: macro parameter "val" is used in both expanded and raw forms

4

2 に答える 2