Print this page
11506 smatch resync

Split Close
Expand all
Collapse all
          --- old/usr/src/tools/smatch/src/check_macro_side_effects.c
          +++ new/usr/src/tools/smatch/src/check_macro_side_effects.c
↓ open down ↓ 22 lines elided ↑ open up ↑
  23   23  static int my_id;
  24   24  
  25   25  static struct string_list *ignored_macros;
  26   26  static struct position old_pos;
  27   27  
  28   28  static struct smatch_state *alloc_my_state(struct expression *expr)
  29   29  {
  30   30          struct smatch_state *state;
  31   31          char *name;
  32   32  
  33      -        state = __alloc_smatch_state(0);
  34   33          expr = strip_expr(expr);
  35   34          name = expr_to_str(expr);
       35 +        if (!name)
       36 +                return NULL;
       37 +
       38 +        state = __alloc_smatch_state(0);
  36   39          state->name = alloc_sname(name);
  37   40          free_string(name);
  38   41          state->data = expr;
  39   42          return state;
  40   43  }
  41   44  
  42   45  static int defined_inside_macro(struct position macro_pos, struct expression *expr)
  43   46  {
  44   47          char *name;
  45   48          struct symbol *sym;
↓ open down ↓ 107 lines elided ↑ open up ↑
 153  156          clear_token_alloc();
 154  157  }
 155  158  
 156  159  void check_macro_side_effects(int id)
 157  160  {
 158  161          my_id = id;
 159  162  
 160  163          if (!option_spammy)
 161  164                  return;
 162  165  
      166 +        set_dynamic_states(my_id);
 163  167          add_hook(&match_unop, OP_HOOK);
 164  168          add_hook(&match_stmt, STMT_HOOK);
 165  169          register_ignored_macros();
 166  170  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX