From 4666e61e107a4dac9d36f799b5270bdce5243b3d Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Tue, 15 Jan 2013 10:39:43 +0300 Subject: [PATCH] equiv: get rid of the ->op member This was only ever SPECIAL_EQUAL. I had planned to make it other stuff but now I've changed my plans. Signed-off-by: Dan Carpenter --- check_debug.c | 2 +- smatch_equiv.c | 34 ++++++++++++---------------------- smatch_extra.h | 3 +-- 3 files changed, 14 insertions(+), 25 deletions(-) diff --git a/check_debug.c b/check_debug.c index b9fde072..8eb1e930 100644 --- a/check_debug.c +++ b/check_debug.c @@ -248,7 +248,7 @@ static void print_related(struct sm_state *sm) sm_prefix(); sm_printf("%s: ", sm->name); FOR_EACH_PTR(estate_related(sm->state), rel) { - sm_printf("%s %s ", show_special(rel->op), rel->name); + sm_printf("%s ", rel->name); } END_FOR_EACH_PTR(rel); sm_printf("\n"); } diff --git a/smatch_equiv.c b/smatch_equiv.c index e0cad5e2..e4f6cba2 100644 --- a/smatch_equiv.c +++ b/smatch_equiv.c @@ -25,12 +25,11 @@ ALLOCATOR(relation, "related variables"); -static struct relation *alloc_relation(int op, const char *name, struct symbol *sym) +static struct relation *alloc_relation(const char *name, struct symbol *sym) { struct relation *tmp; tmp = __alloc_relation(0); - tmp->op = op; tmp->name = alloc_string(name); tmp->sym = sym; return tmp; @@ -55,11 +54,6 @@ static int cmp_relation(struct relation *a, struct relation *b) if (a == b) return 0; - if (a->op > b->op) - return -1; - if (a->op < b->op) - return 1; - if (a->sym > b->sym) return -1; if (a->sym < b->sym) @@ -100,7 +94,7 @@ struct related_list *get_shared_relations(struct related_list *one, return ret; } -static void debug_addition(struct related_list *rlist, int op, const char *name) +static void debug_addition(struct related_list *rlist, const char *name) { struct relation *tmp; @@ -110,41 +104,39 @@ static void debug_addition(struct related_list *rlist, int op, const char *name) sm_prefix(); sm_printf("("); FOR_EACH_PTR(rlist, tmp) { - sm_printf("%s %s ", show_special(tmp->op), tmp->name); + sm_printf("%s ", tmp->name); } END_FOR_EACH_PTR(tmp); - sm_printf(") <-- %s %s\n", show_special(op), name); + sm_printf(") <-- %s\n", name); } -static void add_related(struct related_list **rlist, int op, const char *name, struct symbol *sym) +static void add_related(struct related_list **rlist, const char *name, struct symbol *sym) { struct relation *rel; struct relation *new; struct relation tmp = { - .op = op, .name = (char *)name, .sym = sym }; - debug_addition(*rlist, op, name); + debug_addition(*rlist, name); FOR_EACH_PTR(*rlist, rel) { if (cmp_relation(rel, &tmp) < 0) continue; if (cmp_relation(rel, &tmp) == 0) return; - new = alloc_relation(op, name, sym); + new = alloc_relation(name, sym); INSERT_CURRENT(new, rel); return; } END_FOR_EACH_PTR(rel); - new = alloc_relation(op, name, sym); + new = alloc_relation(name, sym); add_ptr_list(rlist, new); } -void del_related(struct smatch_state *state, int op, const char *name, struct symbol *sym) +void del_related(struct smatch_state *state, const char *name, struct symbol *sym) { struct relation *tmp; struct relation remove = { - .op = op, .name = (char *)name, .sym = sym, }; @@ -162,7 +154,7 @@ void del_related(struct smatch_state *state, int op, const char *name, struct sy static void del_equiv(struct smatch_state *state, const char *name, struct symbol *sym) { - del_related(state, SPECIAL_EQUAL, name, sym); + del_related(state, name, sym); } void remove_from_equiv(const char *name, struct symbol *sym) @@ -241,8 +233,8 @@ void set_equiv(struct expression *left, struct expression *right) remove_from_equiv(left_name, left_sym); rlist = clone_related_list(estate_related(right_sm->state)); - add_related(&rlist, SPECIAL_EQUAL, right_sm->name, right_sm->sym); - add_related(&rlist, SPECIAL_EQUAL, left_name, left_sym); + add_related(&rlist, right_sm->name, right_sm->sym); + add_related(&rlist, left_name, left_sym); state = clone_estate(right_sm->state); get_dinfo(state)->related = rlist; @@ -271,8 +263,6 @@ void set_equiv_state_expr(int id, struct expression *expr, struct smatch_state * return; FOR_EACH_PTR(get_dinfo(estate)->related, rel) { - if (rel->op != SPECIAL_EQUAL) - continue; set_state(id, rel->name, rel->sym, state); } END_FOR_EACH_PTR(rel); } diff --git a/smatch_extra.h b/smatch_extra.h index 4b95590e..f49f11eb 100644 --- a/smatch_extra.h +++ b/smatch_extra.h @@ -15,7 +15,6 @@ DECLARE_PTR_LIST(range_list, struct data_range); DECLARE_PTR_LIST(range_list_stack, struct range_list); struct relation { - int op; char *name; struct symbol *sym; }; @@ -132,7 +131,7 @@ void __extra_pre_loop_hook_after(struct sm_state *sm, struct statement *iterator, struct expression *condition); -/* smatch_constraints.c */ +/* smatch_equiv.c */ void set_equiv(struct expression *left, struct expression *right); void set_related(struct smatch_state *estate, struct related_list *rlist); struct related_list *get_shared_relations(struct related_list *one, -- 2.11.4.GIT