Print this page
11506 smatch resync

Split Close
Expand all
Collapse all
          --- old/usr/src/tools/smatch/src/smatch_imaginary_absolute.c
          +++ new/usr/src/tools/smatch/src/smatch_imaginary_absolute.c
↓ open down ↓ 45 lines elided ↑ open up ↑
  46   46          return alloc_estate_empty();
  47   47  }
  48   48  
  49   49  static void reset(struct sm_state *sm, struct expression *mod_expr)
  50   50  {
  51   51          set_state(my_id, sm->name, sm->sym, alloc_estate_empty());
  52   52  }
  53   53  
  54   54  void __save_imaginary_state(struct expression *expr, struct range_list *true_rl, struct range_list *false_rl)
  55   55  {
       56 +        if (__in_pre_condition)
       57 +                return;
  56   58          set_true_false_states_expr(my_id, expr, alloc_estate_rl(true_rl), alloc_estate_rl(false_rl));
  57   59  }
  58   60  
  59   61  int get_imaginary_absolute(struct expression *expr, struct range_list **rl)
  60   62  {
  61   63          struct smatch_state *state;
  62   64  
  63   65          *rl = NULL;
  64   66  
  65   67          state = get_state_expr(my_id, expr);
↓ open down ↓ 1 lines elided ↑ open up ↑
  67   69                  return 0;
  68   70  
  69   71          *rl = estate_rl(state);
  70   72          return 1;
  71   73  }
  72   74  
  73   75  void register_imaginary_absolute(int id)
  74   76  {
  75   77          my_id = id;
  76   78  
       79 +        set_dynamic_states(my_id);
  77   80          add_unmatched_state_hook(my_id, &empty_state);
  78   81          add_merge_hook(my_id, &merge_is_empty);
  79   82          add_modification_hook(my_id, &reset);
  80   83  }
  81   84  
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX