Print this page
11972 resync smatch

Split Close
Expand all
Collapse all
          --- old/usr/src/tools/smatch/src/smatch_param_filter.c
          +++ new/usr/src/tools/smatch/src/smatch_param_filter.c
↓ open down ↓ 58 lines elided ↑ open up ↑
  59   59          start_states = pop_stree(&saved_stack);
  60   60  }
  61   61  
  62   62  static struct smatch_state *unmatched_state(struct sm_state *sm)
  63   63  {
  64   64          struct smatch_state *state;
  65   65  
  66   66          if (parent_is_gone_var_sym(sm->name, sm->sym))
  67   67                  return alloc_estate_empty();
  68   68  
  69      -        state = get_state(SMATCH_EXTRA, sm->name, sm->sym);
       69 +        state = __get_state(SMATCH_EXTRA, sm->name, sm->sym);
  70   70          if (state)
  71   71                  return state;
  72   72          return alloc_estate_whole(estate_type(sm->state));
  73   73  }
  74   74  
  75      -static void pre_merge_hook(struct sm_state *sm)
       75 +static void pre_merge_hook(struct sm_state *cur, struct sm_state *other)
  76   76  {
  77      -        struct smatch_state *extra, *mine;
       77 +        struct smatch_state *extra;
  78   78          struct range_list *rl;
  79   79  
  80      -        if (estate_rl(sm->state))
       80 +        if (estate_rl(other->state))
  81   81                  return;
  82   82  
  83      -        extra = get_state(SMATCH_EXTRA, sm->name, sm->sym);
       83 +        extra = get_state(SMATCH_EXTRA, cur->name, cur->sym);
  84   84          if (!extra)
  85   85                  return;
  86      -        mine = get_state(my_id, sm->name, sm->sym);
  87   86  
  88      -        rl = rl_intersection(estate_rl(extra), estate_rl(mine));
  89      -        if (rl_equiv(rl, estate_rl(mine)))
       87 +        rl = rl_intersection(estate_rl(extra), estate_rl(cur->state));
       88 +        if (rl_equiv(rl, estate_rl(cur->state)))
  90   89                  return;
  91      -        set_state(my_id, sm->name, sm->sym, alloc_estate_rl(clone_rl(rl)));
       90 +        set_state(my_id, cur->name, cur->sym, alloc_estate_rl(clone_rl(rl)));
  92   91  }
  93   92  
  94   93  static void extra_mod_hook(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
  95   94  {
  96   95          int param;
  97   96  
  98   97          if (__in_fake_assign)
  99   98                  return;
 100   99  
 101  100          param = get_param_num_from_sym(sym);
↓ open down ↓ 119 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX