Print this page
new smatch

Split Close
Expand all
Collapse all
          --- old/usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
          +++ new/usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
↓ open down ↓ 68 lines elided ↑ open up ↑
  69   69  {
  70   70          /* Basically ignore undefined states */
  71   71          if (s1 == &undefined)
  72   72                  return s2;
  73   73          if (s2 == &undefined)
  74   74                  return s1;
  75   75  
  76   76          return &merged;
  77   77  }
  78   78  
  79      -static bool is_local_var(struct expression *expr)
  80      -{
  81      -        struct symbol *sym;
  82      -
  83      -        if (!expr || expr->type != EXPR_SYMBOL)
  84      -                return false;
  85      -        sym = expr->symbol;
  86      -        if (!(sym->ctype.modifiers & MOD_TOPLEVEL))
  87      -                return true;
  88      -        return false;
  89      -}
  90      -
  91   79  static void match_assign(struct expression *expr)
  92   80  {
  93   81          struct expression *left;
  94   82          struct symbol *right_sym;
  95   83          char *name;
  96   84          mtag_t tag;
  97   85          int offset;
  98   86          int param;
  99   87  
 100   88          if (expr->op != '=')
 101   89                  return;
 102   90          left = strip_expr(expr->left);
 103      -        if (is_local_var(left))
       91 +        if (is_local_variable(left))
 104   92                  return;
 105   93          right_sym = expr_to_sym(expr->right);
 106   94          if (!right_sym)
 107   95                  return;
 108   96  
 109   97          param = get_param_num_from_sym(right_sym);
 110   98          if (param < 0)
 111   99                  return;
 112  100          // FIXME:  modify param_has_filter_data() to take a name/sym
 113  101          if (!expr_to_mtag_offset(left, &tag, &offset))
↓ open down ↓ 119 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX