Print this page
11506 smatch resync

Split Close
Expand all
Collapse all
          --- old/usr/src/tools/smatch/src/smatch_param_limit.c
          +++ new/usr/src/tools/smatch/src/smatch_param_limit.c
↓ open down ↓ 150 lines elided ↑ open up ↑
 151  151                  state = __get_state(my_id, tmp->name, tmp->sym);
 152  152                  if (!state)
 153  153                          state = tmp->state;
 154  154  
 155  155                  if (estate_is_whole(state) || estate_is_empty(state))
 156  156                          continue;
 157  157                  old = get_state_stree(start_states, SMATCH_EXTRA, tmp->name, tmp->sym);
 158  158                  if (old && rl_equiv(estate_rl(old), estate_rl(state)))
 159  159                          continue;
 160  160  
      161 +                if (is_ignored_kernel_data(param_name))
      162 +                        continue;
      163 +
 161  164                  rl = generify_mtag_range(state);
 162  165                  sql_insert_return_states(return_id, return_ranges, PARAM_LIMIT,
 163  166                                           param, param_name, show_rl(rl));
 164  167          } END_FOR_EACH_SM(tmp);
 165  168  }
 166  169  
 167  170  static void extra_mod_hook(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
 168  171  {
 169  172          struct smatch_state *orig_vals;
 170  173          int param;
↓ open down ↓ 15 lines elided ↑ open up ↑
 186  189  static void match_restore_states(struct expression *expr)
 187  190  {
 188  191          free_stree(&start_states);
 189  192          start_states = pop_stree(&saved_stack);
 190  193  }
 191  194  
 192  195  void register_param_limit(int id)
 193  196  {
 194  197          my_id = id;
 195  198  
      199 +        set_dynamic_states(my_id);
 196  200          add_hook(&save_start_states, AFTER_DEF_HOOK);
 197  201          add_hook(&free_start_states, AFTER_FUNC_HOOK);
 198  202  
 199  203          add_extra_mod_hook(&extra_mod_hook);
 200  204          add_unmatched_state_hook(my_id, &unmatched_state);
 201  205          add_merge_hook(my_id, &merge_estates);
 202  206  
 203  207          add_hook(&match_save_states, INLINE_FN_START);
 204  208          add_hook(&match_restore_states, INLINE_FN_END);
 205  209  
 206  210          add_split_return_callback(&print_return_value_param);
 207  211  }
 208  212  
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX