Print this page
11972 resync smatch

Split Close
Expand all
Collapse all
          --- old/usr/src/tools/smatch/src/check_double_checking.c
          +++ new/usr/src/tools/smatch/src/check_double_checking.c
↓ open down ↓ 39 lines elided ↑ open up ↑
  40   40  static struct expression *strip_condition(struct expression *expr)
  41   41  {
  42   42          expr = strip_expr(expr);
  43   43  
  44   44          if (expr->type == EXPR_PREOP && expr->op == '!')
  45   45                  return strip_condition(expr->unop);
  46   46  
  47   47          if (expr->type == EXPR_COMPARE &&
  48   48              (expr->op == SPECIAL_EQUAL ||
  49   49               expr->op == SPECIAL_NOTEQUAL)) {
  50      -                if (is_zero(expr->left))
       50 +                if (expr_is_zero(expr->left))
  51   51                          return strip_condition(expr->right);
  52      -                if (is_zero(expr->right))
       52 +                if (expr_is_zero(expr->right))
  53   53                          return strip_condition(expr->left);
  54   54          }
  55   55  
  56   56          return expr;
  57   57  }
  58   58  
  59   59  static int conditions_match(struct expression *cond, struct expression *prev)
  60   60  {
  61   61          prev = strip_condition(prev);
  62   62  
↓ open down ↓ 61 lines elided ↑ open up ↑
 124  124          return 0;
 125  125  }
 126  126  
 127  127  static int previous_statement_was_synchronize(void)
 128  128  {
 129  129          struct statement *stmt;
 130  130          struct position pos;
 131  131          struct position prev_pos;
 132  132          char *ident;
 133  133  
      134 +        if (!__cur_stmt)
      135 +                return 0;
      136 +
 134  137          if (__prev_stmt) {
 135  138                  prev_pos = __prev_stmt->pos;
 136  139                  prev_pos.line -= 3;
 137  140          } else {
 138  141                  prev_pos = __cur_stmt->pos;
 139  142                  prev_pos.line -= 5;
 140  143          }
 141  144  
 142  145          FOR_EACH_PTR_REVERSE(big_statement_stack, stmt) {
 143  146                  if (stmt->pos.line < prev_pos.line)
↓ open down ↓ 138 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX