From fd90ac01996c608043f4cdb1f2be85ee7cfb9509 Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Wed, 12 Apr 2017 15:54:38 +0300 Subject: [PATCH] flow: remove some buggy unused code This code has some comments which correctly point out that it's buggy. It turns out that it isn't used anyway so it can just be deleted. Originally this code was used to determine if a struct member was set in the initializer, but now we just look it up in smatch_extra.c instead. Signed-off-by: Dan Carpenter --- smatch_flow.c | 43 ------------------------------------------- 1 file changed, 43 deletions(-) diff --git a/smatch_flow.c b/smatch_flow.c index 6597287e..3c723995 100644 --- a/smatch_flow.c +++ b/smatch_flow.c @@ -1192,45 +1192,6 @@ static struct ident *number_to_member(struct expression *expr, int num) static void fake_element_assigns_helper(struct expression *array, struct expression_list *expr_list, fake_cb *fake_cb); -struct member_set { - struct ident *ident; - int set; -}; - -static struct member_set *alloc_member_set(struct symbol *type) -{ - struct member_set *member_set; - struct symbol *member; - int member_count; - int member_idx; - - member_count = ptr_list_size((struct ptr_list *)type->symbol_list); - member_set = malloc(member_count * sizeof(*member_set)); - member_idx = 0; - FOR_EACH_PTR(type->symbol_list, member) { - member_set[member_idx].ident = member->ident; - member_set[member_idx].set = 0; - member_idx++; - } END_FOR_EACH_PTR(member); - - return member_set; -} - -static void mark_member_as_set(struct symbol *type, struct member_set *member_set, struct ident *ident) -{ - int member_count = ptr_list_size((struct ptr_list *)type->symbol_list); - int i; - - for (i = 0; i < member_count; i++) { - if (member_set[i].ident == ident) { - member_set[i].set = 1; - return; - } - } -// crap. this is buggy. -// sm_msg("internal smatch error in initializer %s.%s", type->ident->name, ident->name); -} - static void set_inner_struct_members(struct expression *expr, struct symbol *member) { struct expression *edge_member, *assign; @@ -1309,15 +1270,12 @@ static void fake_member_assigns_helper(struct expression *symbol, struct express struct symbol *struct_type, *type; struct ident *member; int member_idx; - struct member_set *member_set; struct_type = get_type(symbol); if (!struct_type || (struct_type->type != SYM_STRUCT && struct_type->type != SYM_UNION)) return; - member_set = alloc_member_set(struct_type); - /* * We're parsing an initializer that could look something like this: * struct foo foo = { @@ -1348,7 +1306,6 @@ static void fake_member_assigns_helper(struct expression *symbol, struct express deref = member_expression(symbol, '.', member); } right = tmp; - mark_member_as_set(struct_type, member_set, member); member_idx++; if (right->type == EXPR_INITIALIZER) { type = get_type(deref); -- 2.11.4.GIT