Print this page
11506 smatch resync

*** 118,127 **** --- 118,137 ---- return; sm_warning("shift has higher precedence than mask"); } + static void match_mask_compare(struct expression *expr) + { + if (expr->op != '&') + return; + if (expr->right->type != EXPR_COMPARE) + return; + + sm_warning("compare has higher precedence than mask"); + } + static void match_subtract_shift(struct expression *expr) { if (expr->op != SPECIAL_LEFTSHIFT) return; if (expr->right->type != EXPR_BINOP)
*** 136,142 **** --- 146,153 ---- my_id = id; add_hook(&match_condition, CONDITION_HOOK); add_hook(&match_binop, BINOP_HOOK); add_hook(&match_mask, BINOP_HOOK); + add_hook(&match_mask_compare, BINOP_HOOK); add_hook(&match_subtract_shift, BINOP_HOOK); }