From 8c3c49c6d799a38ef632f6b6939f0312aa3c805b Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Wed, 17 Apr 2013 18:59:20 +0300 Subject: [PATCH] extra: don't use the indirect_modification_hook The problem here is that when you have: some_function(&bar); It would reset all the members of bar, but really smatch_db.c should handle that. Really smatch_modification_hooks.c isn't the right idea. Smatch extra already has all this information and everything should be built around that. Signed-off-by: Dan Carpenter --- smatch_extra.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/smatch_extra.c b/smatch_extra.c index 7db9d302..e2085848 100644 --- a/smatch_extra.c +++ b/smatch_extra.c @@ -623,13 +623,6 @@ free: free_string(name); } -static void reset_struct_members(struct sm_state *sm) -{ - if (!estate_rl(sm->state)) - return; - set_extra_mod(sm->name, sm->sym, alloc_estate_whole(estate_type(sm->state))); -} - static struct smatch_state *increment_state(struct smatch_state *state) { sval_t min = estate_min(state); @@ -1285,7 +1278,6 @@ void register_smatch_extra_late(int id) add_hook(&match_dereferences, DEREF_HOOK); add_hook(&match_pointer_as_array, OP_HOOK); add_db_fn_call_callback(DEREFERENCE, &set_param_dereferenced); - add_indirect_modification_hook(SMATCH_EXTRA, reset_struct_members); add_hook(&match_function_call, FUNCTION_CALL_HOOK); add_hook(&match_assign, ASSIGNMENT_HOOK); add_hook(&unop_expr, OP_HOOK); -- 2.11.4.GIT