From 89b05a8062e6ba62cd18160b97bebb1d7de54b2d Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Fri, 25 May 2012 22:35:03 +0300 Subject: [PATCH] constraints: get rid of add_equiv() I don't like add_equiv() because it takes a state instead of a related_list. The places which use it were ugly as well for other reasons. Clean them up and delete it. Signed-off-by: Dan Carpenter --- smatch_constraints.c | 7 ------- smatch_extra.c | 12 ++++++------ smatch_extra.h | 1 - 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/smatch_constraints.c b/smatch_constraints.c index ff6da411..ad61ef00 100644 --- a/smatch_constraints.c +++ b/smatch_constraints.c @@ -170,13 +170,6 @@ void del_related(struct smatch_state *state, int op, const char *name, struct sy } END_FOR_EACH_PTR(tmp); } -void add_equiv(struct smatch_state *state, const char *name, struct symbol *sym) -{ - struct data_info *dinfo = get_dinfo(state); - - add_related(&dinfo->related, SPECIAL_EQUAL, name, sym); -} - static void del_equiv(struct smatch_state *state, const char *name, struct symbol *sym) { del_related(state, SPECIAL_EQUAL, name, sym); diff --git a/smatch_extra.c b/smatch_extra.c index cc45ead3..b274cc0b 100644 --- a/smatch_extra.c +++ b/smatch_extra.c @@ -75,11 +75,11 @@ void set_extra_expr_nomod(struct expression *expr, struct smatch_state *state) return; } + get_dinfo(state)->related = estate_related(orig_state); FOR_EACH_PTR(estate_related(orig_state), rel) { if (option_debug_related) sm_msg("updating related %s to %s", rel->name, state->name); set_state(SMATCH_EXTRA, rel->name, rel->sym, state); - add_equiv(state, rel->name, rel->sym); } END_FOR_EACH_PTR(rel); } @@ -100,14 +100,14 @@ static void set_extra_true_false(const char *name, struct symbol *sym, return; } - // FIXME!!!! equiv => related + if (true_state) + get_dinfo(true_state)->related = estate_related(orig_state); + if (false_state) + get_dinfo(false_state)->related = estate_related(orig_state); + FOR_EACH_PTR(estate_related(orig_state), rel) { set_true_false_states(SMATCH_EXTRA, rel->name, rel->sym, true_state, false_state); - if (true_state) - add_equiv(true_state, rel->name, rel->sym); - if (false_state) - add_equiv(false_state, rel->name, rel->sym); } END_FOR_EACH_PTR(rel); } diff --git a/smatch_extra.h b/smatch_extra.h index c1f127f1..da7c5d1e 100644 --- a/smatch_extra.h +++ b/smatch_extra.h @@ -113,7 +113,6 @@ void set_equiv(struct expression *left, struct expression *right); struct related_list *get_shared_relations(struct related_list *one, struct related_list *two); struct related_list *clone_related_list(struct related_list *related); -void add_equiv(struct smatch_state *state, const char *name, struct symbol *sym); void remove_from_equiv(const char *name, struct symbol *sym); void remove_from_equiv_expr(struct expression *expr); void set_equiv_state_expr(int id, struct expression *expr, struct smatch_state *state); -- 2.11.4.GIT