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

Split Close
Expand all
Collapse all
          --- old/usr/src/tools/smatch/src/check_shift_to_zero.c
          +++ new/usr/src/tools/smatch/src/check_shift_to_zero.c
↓ open down ↓ 48 lines elided ↑ open up ↑
  49   49          if (expr->op != SPECIAL_RIGHTSHIFT)
  50   50                  return;
  51   51  
  52   52          left = strip_expr(expr->left);
  53   53          tmp = get_assigned_expr(left);
  54   54          if (tmp)
  55   55                  left = tmp;
  56   56          if (left->type != EXPR_BINOP || left->op != '&')
  57   57                  return;
  58   58  
  59      -        if (!get_implied_value(expr->right, &shift))
       59 +        if (!get_value(expr->right, &shift))
  60   60                  return;
  61      -        if (!get_implied_value(left->right, &mask))
       61 +        if (!get_value(left->right, &mask))
  62   62                  return;
  63   63  
  64   64          if (mask.uvalue >> shift.uvalue)
  65   65                  return;
  66   66  
  67   67          sm_warning("mask and shift to zero");
  68   68  }
  69   69  
  70   70  static void match_assign(struct expression *expr)
  71   71  {
↓ open down ↓ 26 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX