Print this page
12724 update smatch to 0.6.1-rc1-il-5

@@ -92,17 +92,19 @@
         if (is_capped_macro(expr))
                 return 1;
 
         if (expr->type == EXPR_BINOP) {
                 struct range_list *left_rl, *right_rl;
+                sval_t sval;
 
-                if (expr->op == '&')
+                if (expr->op == '&' && !get_value(expr->right, &sval))
                         return 1;
                 if (expr->op == SPECIAL_RIGHTSHIFT)
+                        return 0;
+                if (expr->op == '%' &&
+                    !get_value(expr->right, &sval) && is_capped(expr->right))
                         return 1;
-                if (expr->op == '%' && is_capped(expr->right))
-                        return 1;
                 if (!is_capped(expr->left))
                         return 0;
                 if (expr->op == '/')
                         return 1;
                 if (!is_capped(expr->right))