From: Dan Carpenter Date: Fri, 11 Jan 2013 12:52:45 +0000 (+0300) Subject: smatch: rename get_variable_from_expr() to expr_to_str_sym() X-Git-Tag: 1.57~62 X-Git-Url: https://repo.or.cz/w/smatch.git/commitdiff_plain/e49340db97baf24e278ac2dd7ebb44bfadd8c88c smatch: rename get_variable_from_expr() to expr_to_str_sym() Signed-off-by: Dan Carpenter --- diff --git a/check_allocation_funcs.c b/check_allocation_funcs.c index 604799ec..e56b1bb3 100644 --- a/check_allocation_funcs.c +++ b/check_allocation_funcs.c @@ -34,7 +34,7 @@ static void match_allocation(const char *fn, struct expression *expr, char *left_name; struct symbol *left_sym; - left_name = get_variable_from_expr(expr->left, &left_sym); + left_name = expr_to_str_sym(expr->left, &left_sym); if (!left_name || !left_sym) goto free; if (left_sym->ctype.modifiers & @@ -56,7 +56,7 @@ static void match_return(struct expression *ret_value) if (get_value(ret_value, &tmp) && tmp.value == 0) return; returns_new_stuff = 1; - name = get_variable_from_expr(ret_value, &sym); + name = expr_to_str_sym(ret_value, &sym); if (!name || !sym) { returns_old_stuff = 1; goto free; diff --git a/check_bogus_loop.c b/check_bogus_loop.c index 7ddffcbe..30cf40ee 100644 --- a/check_bogus_loop.c +++ b/check_bogus_loop.c @@ -58,9 +58,9 @@ static void match_loop(struct statement *stmt) return; iterator = get_iterator_set(stmt->iterator_pre_statement); - iter_set = get_variable_from_expr(iterator, NULL); + iter_set = expr_to_str_sym(iterator, NULL); iterator = get_iterator_tested(stmt->iterator_pre_condition); - iter_tested = get_variable_from_expr(iterator, NULL); + iter_tested = expr_to_str_sym(iterator, NULL); if (!iter_set || !iter_tested) goto free; if (strcmp(iter_set, iter_tested)) diff --git a/check_call_tree.c b/check_call_tree.c index d22ad407..adcc81dd 100644 --- a/check_call_tree.c +++ b/check_call_tree.c @@ -15,7 +15,7 @@ static void match_call(struct expression *expr) { char *fn_name; - fn_name = get_variable_from_expr(expr->fn, NULL); + fn_name = expr_to_str_sym(expr->fn, NULL); if (!fn_name) return; sm_prefix(); diff --git a/check_container_of.c b/check_container_of.c index 0f254cd2..b28f8549 100644 --- a/check_container_of.c +++ b/check_container_of.c @@ -39,7 +39,7 @@ static void match_condition(struct expression *expr) if (get_state_expr(my_id, expr) == &non_null) { char *name; - name = get_variable_from_expr(expr, NULL); + name = expr_to_str_sym(expr, NULL); sm_msg("warn: can '%s' even be NULL?", name); set_state_expr(my_id, expr, &undefined); free_string(name); diff --git a/check_dev_queue_xmit.c b/check_dev_queue_xmit.c index d0ce87ea..b3e784f1 100644 --- a/check_dev_queue_xmit.c +++ b/check_dev_queue_xmit.c @@ -59,7 +59,7 @@ static void match_symbol(struct expression *expr) return; if (valid_use()) return; - name = get_variable_from_expr(expr, NULL); + name = expr_to_str_sym(expr, NULL); sm_msg("error: '%s' was already used up by dev_queue_xmit()", name); free_string(name); } diff --git a/check_dma_on_stack.c b/check_dma_on_stack.c index 79a9f405..6d3ea263 100644 --- a/check_dma_on_stack.c +++ b/check_dma_on_stack.c @@ -34,7 +34,7 @@ static void match_dma_func(const char *fn, struct expression *expr, void *param) sym = get_type(arg); if (!sym || sym->type != SYM_ARRAY) return; - name = get_variable_from_expr(arg, NULL); + name = expr_to_str_sym(arg, NULL); sm_msg("error: doing dma on the stack (%s)", name); free_string(name); } diff --git a/check_free.c b/check_free.c index 6e23cac8..f91466e6 100644 --- a/check_free.c +++ b/check_free.c @@ -42,7 +42,7 @@ static void match_symbol(struct expression *expr) if (!is_freed(expr)) return; - name = get_variable_from_expr(expr, NULL); + name = expr_to_str_sym(expr, NULL); sm_msg("warn: '%s' was already freed.", name); free_string(name); } @@ -57,7 +57,7 @@ static void match_dereferences(struct expression *expr) if (!is_freed(expr)) return; - name = get_variable_from_expr(expr, NULL); + name = expr_to_str_sym(expr, NULL); sm_msg("error: dereferencing freed memory '%s'", name); set_state_expr(my_id, expr, &ok); free_string(name); @@ -72,7 +72,7 @@ static void match_free(const char *fn, struct expression *expr, void *param) return; /* option_spammy already prints a warning here */ if (!option_spammy && is_freed(arg)) { - char *name = get_variable_from_expr(arg, NULL); + char *name = expr_to_str_sym(arg, NULL); sm_msg("error: double free of '%s'", name); free_string(name); diff --git a/check_freeing_null.c b/check_freeing_null.c index c1ca9d59..1302f712 100644 --- a/check_freeing_null.c +++ b/check_freeing_null.c @@ -22,7 +22,7 @@ static void match_free(const char *fn, struct expression *expr, void *data) return; if (sval.value != 0) return; - name = get_variable_from_expr(arg_expr, NULL); + name = expr_to_str_sym(arg_expr, NULL); sm_msg("warn: calling %s() when '%s' is always NULL.", fn, name); free_string(name); } diff --git a/check_frees_argument.c b/check_frees_argument.c index 3d3c0487..da094d9c 100644 --- a/check_frees_argument.c +++ b/check_frees_argument.c @@ -48,7 +48,7 @@ static void match_kfree(const char *fn, struct expression *expr, void *info) tmp = get_argument_from_call_expr(expr->args, 0); tmp = strip_expr(tmp); - name = get_variable_from_expr(tmp, &sym); + name = expr_to_str_sym(tmp, &sym); if (is_arg(name, sym)) { set_state(my_id, name, sym, &freed); } diff --git a/check_get_user_overflow.c b/check_get_user_overflow.c index ed7f72b6..88c77700 100644 --- a/check_get_user_overflow.c +++ b/check_get_user_overflow.c @@ -96,7 +96,7 @@ static void match_assign(struct expression *expr) match_normal_assign(expr); return; } - name = get_variable_from_expr(expr->right, NULL); + name = expr_to_str_sym(expr->right, NULL); if (!name || strcmp(name, "__val_gu") != 0) goto free; set_state_expr(my_max_id, expr->left, &user_data); @@ -130,7 +130,7 @@ static void check_expr(struct expression *expr) if (!overflow && !underflow) return; - name = get_variable_from_expr(expr, NULL); + name = expr_to_str_sym(expr, NULL); if (overflow && underflow) sm_msg("warn: check for integer over/underflow '%s'", name); else if (underflow) diff --git a/check_info_leak.c b/check_info_leak.c index c2824320..563a1f77 100644 --- a/check_info_leak.c +++ b/check_info_leak.c @@ -19,7 +19,7 @@ static char *my_get_variable(struct expression *expr, struct symbol **sym) { char *name; - name = get_variable_from_expr(expr, sym); + name = expr_to_str_sym(expr, sym); free_string(name); if (!name || !*sym) return NULL; @@ -67,7 +67,7 @@ static void match_copy_to_user(const char *fn, struct expression *expr, void *un sm = get_sm_state(my_id, name, sym); if (!sm || !slist_has_state(sm->possible, &string)) return; - name = get_variable_from_expr(src, NULL); + name = expr_to_str_sym(src, NULL); sm_msg("warn: possible info leak '%s'", name); free_string(name); } diff --git a/check_kmalloc_to_bugon.c b/check_kmalloc_to_bugon.c index 43aa0d3c..4911b070 100644 --- a/check_kmalloc_to_bugon.c +++ b/check_kmalloc_to_bugon.c @@ -43,7 +43,7 @@ static void match_condition(struct expression *expr) if (!is_kmalloc_call(right)) return; - name = get_variable_from_expr(expr, NULL); + name = expr_to_str_sym(expr, NULL); sm_msg("warn: bug on allocation failure '%s'", name); free_string(name); } diff --git a/check_kunmap.c b/check_kunmap.c index 22478af5..5a18c462 100644 --- a/check_kunmap.c +++ b/check_kunmap.c @@ -24,7 +24,7 @@ static void check_assignment(void *data) return; if (expr->type != EXPR_CALL) return; - fn = get_variable_from_expr(expr->fn, NULL); + fn = expr_to_str_sym(expr->fn, NULL); if (!fn) return; if (!strcmp(fn, "kmap")) diff --git a/check_leaks.c b/check_leaks.c index 45115d40..f85fba93 100644 --- a/check_leaks.c +++ b/check_leaks.c @@ -179,7 +179,7 @@ static void warn_if_allocated(struct expression *expr) if (!slist_has_state(sm->possible, &allocated)) return; - name = get_variable_from_expr(expr, NULL); + name = expr_to_str_sym(expr, NULL); sm_msg("warn: overwrite may leak '%s'", name); free_string(name); diff --git a/check_locking.c b/check_locking.c index 346a09d0..4b8f125c 100644 --- a/check_locking.c +++ b/check_locking.c @@ -368,7 +368,7 @@ static char *get_full_name(struct expression *expr, int index) struct lock_info *lock = &lock_table[index]; if (lock->arg == RETURN_VAL) { - name = get_variable_from_expr(expr->left, NULL); + name = expr_to_str_sym(expr->left, NULL); full_name = make_full_name(lock->name, name); } else if (lock->arg == NO_ARG) { full_name = make_full_name(lock->name, ""); diff --git a/check_macro_side_effects.c b/check_macro_side_effects.c index e40f1360..0d6ddc69 100644 --- a/check_macro_side_effects.c +++ b/check_macro_side_effects.c @@ -37,7 +37,7 @@ static int defined_inside_macro(struct position macro_pos, struct expression *ex struct symbol *sym; int ret = 0; - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; if (!sym->scope || !sym->scope->token) diff --git a/check_memory.c b/check_memory.c index 78215d52..87ba8a5f 100644 --- a/check_memory.c +++ b/check_memory.c @@ -65,7 +65,7 @@ static int is_complex(struct expression *expr) char *name; int ret = 1; - name = get_variable_from_expr(expr, NULL); + name = expr_to_str_sym(expr, NULL); if (name) ret = 0; free_string(name); @@ -113,7 +113,7 @@ static int is_allocation(struct expression *expr) if (expr->type != EXPR_CALL) return 0; - if (!(fn_name = get_variable_from_expr(expr->fn, NULL))) + if (!(fn_name = expr_to_str_sym(expr->fn, NULL))) return 0; for (i = 0; allocation_funcs[i]; i++) { @@ -241,7 +241,7 @@ static void match_free_func(const char *fn, struct expression *expr, void *data) int arg_num = PTR_INT(data); ptr_expr = get_argument_from_call_expr(expr->args, arg_num); - ptr_name = get_variable_from_expr(ptr_expr, &ptr_sym); + ptr_name = expr_to_str_sym(ptr_expr, &ptr_sym); if (!ptr_name) return; set_state(my_id, ptr_name, ptr_sym, &isfree); @@ -357,7 +357,7 @@ static void match_condition(struct expression *expr) case EXPR_PREOP: case EXPR_SYMBOL: case EXPR_DEREF: - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name) return; set_new_true_false_paths(name, sym); diff --git a/check_missing_break.c b/check_missing_break.c index 3fbaf3c6..f6705242 100644 --- a/check_missing_break.c +++ b/check_missing_break.c @@ -65,7 +65,7 @@ static void match_assign(struct expression *expr) if (get_state_expr(my_id, left) == &no_break) { char *name; - name = get_variable_from_expr(left, NULL); + name = expr_to_str_sym(left, NULL); sm_msg("warn: missing break? reassigning '%s'", name); free_string(name); } diff --git a/check_overflow.c b/check_overflow.c index c45f8256..fa34cbe0 100644 --- a/check_overflow.c +++ b/check_overflow.c @@ -165,7 +165,7 @@ static void match_condition(struct expression *expr) if (boundary < 1 && boundary > -1) { char *name; - name = get_variable_from_expr((left ? expr->right : expr->left), NULL); + name = expr_to_str_sym((left ? expr->right : expr->left), NULL); sm_msg("error: testing array offset '%s' after use.", name); return; } @@ -232,7 +232,7 @@ static void match_snprintf(const char *fn, struct expression *expr, void *unused if (dest_size && dest_size < limit_size.value) sm_msg("error: snprintf() is printing too much %s vs %d", sval_to_str(limit_size), dest_size); - format = get_variable_from_expr(format_string, NULL); + format = expr_to_str_sym(format_string, NULL); if (!format) return; if (strcmp(format, "\"%s\"")) @@ -264,7 +264,7 @@ static void match_sprintf(const char *fn, struct expression *expr, void *unused) dest_size = get_array_size_bytes(dest); if (!dest_size) return; - format = get_variable_from_expr(format_string, NULL); + format = expr_to_str_sym(format_string, NULL); if (!format) return; if (strcmp(format, "\"%s\"")) diff --git a/check_passes_sizeof.c b/check_passes_sizeof.c index 71b5ed5e..253de25e 100644 --- a/check_passes_sizeof.c +++ b/check_passes_sizeof.c @@ -98,7 +98,7 @@ static void match_call(struct expression *call) if (call->fn->type != EXPR_SYMBOL) return; - name = get_variable_from_expr(call->fn, NULL); + name = expr_to_str_sym(call->fn, NULL); FOR_EACH_PTR(call->args, arg) { i++; if (arg->type != EXPR_SIZEOF) diff --git a/check_pointer_math.c b/check_pointer_math.c index a193ee5f..39d2a7f2 100644 --- a/check_pointer_math.c +++ b/check_pointer_math.c @@ -97,7 +97,7 @@ static void check_assign(struct expression *expr) return; if (!is_size_in_bytes(expr->right)) return; - name = get_variable_from_expr(expr->left, NULL); + name = expr_to_str_sym(expr->left, NULL); sm_msg("warn: potential pointer math issue ('%s' is a %d bit pointer)", name, type_bits(type)); free_string(name); diff --git a/check_proc_create.c b/check_proc_create.c index 4786e2bf..5497ad91 100644 --- a/check_proc_create.c +++ b/check_proc_create.c @@ -34,7 +34,7 @@ static void match_create(const char *fn, struct expression *expr, void *_param_t if (!(sval.uvalue & S_IWOTH)) return; arg_expr = get_argument_from_call_expr(expr->args, param_index[idx].name_param); - name = get_variable_from_expr(arg_expr, NULL); + name = expr_to_str_sym(arg_expr, NULL); sm_msg("warn: proc file '%s' is world writable", name); free_string(name); } diff --git a/check_propagate.c b/check_propagate.c index 74ae3e74..f7a3f2c0 100644 --- a/check_propagate.c +++ b/check_propagate.c @@ -25,7 +25,7 @@ static char *get_fn_name(struct expression *expr) return NULL; if (expr->fn->type != EXPR_SYMBOL) return NULL; - return get_variable_from_expr(expr->fn, NULL); + return expr_to_str_sym(expr->fn, NULL); } static void match_call_assignment(struct expression *expr) @@ -55,7 +55,7 @@ static void match_return(struct expression *ret_value) return; if (get_implied_min(last_return, &lret)) return; - name = get_variable_from_expr(last_return, NULL); + name = expr_to_str_sym(last_return, NULL); sm_msg("info: why not propagate '%s' from %s() instead of %s?", name, get_fn_name(last_func), sval_to_str(rval)); free_string(name); diff --git a/check_puts_argument.c b/check_puts_argument.c index e61153f1..317078f6 100644 --- a/check_puts_argument.c +++ b/check_puts_argument.c @@ -46,7 +46,7 @@ static void match_put(const char *fn, struct expression *expr, void *info) tmp = get_argument_from_call_expr(expr->args, 0); tmp = strip_expr(tmp); - name = get_variable_from_expr(tmp, &sym); + name = expr_to_str_sym(tmp, &sym); free_string(name); if (parent_is_arg(sym) && sym->ident) set_state(my_id, sym->ident->name, sym, &putted); diff --git a/check_redundant_null_check.c b/check_redundant_null_check.c index 4392d655..08329d54 100644 --- a/check_redundant_null_check.c +++ b/check_redundant_null_check.c @@ -61,10 +61,10 @@ static void dont_check(const char *fn, struct expression *expr, void *unused) return; arg = get_argument_from_call_expr(expr->args, 0); - name = get_variable_from_expr(arg, NULL); + name = expr_to_str_sym(arg, NULL); if (!name) goto free; - condition_name = get_variable_from_expr(previous_condition, NULL); + condition_name = expr_to_str_sym(previous_condition, NULL); if (!condition_name) goto free; if (!strcmp(name, condition_name)) diff --git a/check_release_resource.c b/check_release_resource.c index f6f3327f..43041391 100644 --- a/check_release_resource.c +++ b/check_release_resource.c @@ -29,7 +29,7 @@ static void match_request(const char *fn, struct expression *expr, void *_arg_no arg_expr = get_argument_from_call_expr(expr->args, arg_no); arg_expr = strip_expr(arg_expr); - name = get_variable_from_expr(arg_expr, &sym); + name = expr_to_str_sym(arg_expr, &sym); if (!name || !sym) goto free; add_tracker(&resource_list, my_id, name, sym); @@ -50,7 +50,7 @@ static void match_release(const char *fn, struct expression *expr, void *_arg_no if (!resource_list) return; - name = get_variable_from_expr(arg_expr, &sym); + name = expr_to_str_sym(arg_expr, &sym); if (!name || !sym) goto free; if (in_tracker_list(resource_list, my_id, name, sym)) diff --git a/check_rosenberg.c b/check_rosenberg.c index ab91a6f6..4ec2281d 100644 --- a/check_rosenberg.c +++ b/check_rosenberg.c @@ -65,7 +65,7 @@ static int was_initialized(struct expression *expr) struct symbol *sym; char *name; - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name) return 0; if (sym->initializer) @@ -138,7 +138,7 @@ static void check_members_initialized(struct expression *expr) if (!sym || sym->type != SYM_STRUCT) return; - name = get_variable_from_expr(expr, &outer); + name = expr_to_str_sym(expr, &outer); if (get_state(check_assigned_expr_id, name, outer)) goto out; @@ -181,7 +181,7 @@ static void match_copy_to_user(const char *fn, struct expression *expr, void *un if (holey_struct(data)) { char *name; - name = get_variable_from_expr(data, NULL); + name = expr_to_str_sym(data, NULL); sm_msg("warn: check that '%s' doesn't leak information (struct has holes)", name); free_string(name); return; diff --git a/check_sizeof.c b/check_sizeof.c index 6f89fdf2..53209466 100644 --- a/check_sizeof.c +++ b/check_sizeof.c @@ -57,7 +57,7 @@ static void check_passes_pointer(char *name, struct expression *call) char *ptr_name; FOR_EACH_PTR(call->args, arg) { - ptr_name = get_variable_from_expr(arg, NULL); + ptr_name = expr_to_str_sym(arg, NULL); if (!ptr_name) continue; if (strcmp(name, ptr_name) == 0) @@ -78,7 +78,7 @@ static void match_check_params(struct expression *call) obj = strip_expr(arg->cast_expression); if (!is_pointer(obj)) continue; - name = get_variable_from_expr(obj, NULL); + name = expr_to_str_sym(obj, NULL); if (!name) continue; check_passes_pointer(name, call); diff --git a/check_template.c b/check_template.c index f5a2b521..07de525c 100644 --- a/check_template.c +++ b/check_template.c @@ -58,12 +58,12 @@ static void match_call(struct expression *expr) struct expression *sem_expr; char *sem_name; - fn_name = get_variable_from_expr(expr->fn, NULL); + fn_name = expr_to_str_sym(expr->fn, NULL); if (!fn_name || (strcmp(fn_name, "down") && strcmp(fn_name, "up"))) goto free_fn; sem_expr = get_argument_from_call_expr(expr->args, 0); - sem_name = get_variable_from_expr(sem_expr, NULL); + sem_name = expr_to_str_sym(sem_expr, NULL); if (!strcmp(fn_name, "down")) { set_state(my_id, sem_name, NULL, &lock); } else { diff --git a/check_unused_ret.c b/check_unused_ret.c index 186076f4..e9b6d64f 100644 --- a/check_unused_ret.c +++ b/check_unused_ret.c @@ -71,7 +71,7 @@ static char *get_fn_name(struct expression *expr) return NULL; if (expr->fn->type != EXPR_SYMBOL) return NULL; - return get_variable_from_expr(expr->fn, NULL); + return expr_to_str_sym(expr->fn, NULL); } static int ignored_function(struct expression *expr) @@ -115,7 +115,7 @@ static void match_assign_call(struct expression *expr) assign = __alloc_assignment(0); assign->assign_id = assign_id++; - assign->name = get_variable_from_expr(left, NULL); + assign->name = expr_to_str_sym(left, NULL); assign->function = get_fn_name(expr->right); assign->line = get_lineno(); add_ptr_list(&assignment_list, assign); diff --git a/check_unwind.c b/check_unwind.c index 80d25d2c..18c606d1 100644 --- a/check_unwind.c +++ b/check_unwind.c @@ -34,7 +34,7 @@ static int was_passed_as_param(struct expression *expr) struct symbol *sym; struct symbol *arg; - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name) return 0; free_string(name); diff --git a/check_user_data.c b/check_user_data.c index 198efeab..7d3044ce 100644 --- a/check_user_data.c +++ b/check_user_data.c @@ -91,7 +91,7 @@ static int is_skb_data(struct expression *expr) int len; int ret = 0; - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; @@ -252,7 +252,7 @@ static void match_assign(struct expression *expr) match_normal_assign(expr); return; } - name = get_variable_from_expr(expr->right, NULL); + name = expr_to_str_sym(expr->right, NULL); if (!name || strcmp(name, "__val_gu") != 0) goto free; set_state_expr(my_id, expr->left, &user_data); diff --git a/check_wine_WtoA.c b/check_wine_WtoA.c index e2cc1f79..93dbef58 100644 --- a/check_wine_WtoA.c +++ b/check_wine_WtoA.c @@ -60,7 +60,7 @@ static void match_call(struct expression *expr) if (!in_w) return; - fn_name = get_variable_from_expr(expr->fn, NULL); + fn_name = expr_to_str_sym(expr->fn, NULL); if (!fn_name) goto free; len = strlen(fn_name); diff --git a/check_wine_filehandles.c b/check_wine_filehandles.c index 087fc4e9..934dbbf5 100644 --- a/check_wine_filehandles.c +++ b/check_wine_filehandles.c @@ -48,7 +48,7 @@ static void match_returns_handle(const char *fn, struct expression *expr, char *left_name = NULL; struct symbol *left_sym; - left_name = get_variable_from_expr(expr->left, &left_sym); + left_name = expr_to_str_sym(expr->left, &left_sym); if (!left_name || !left_sym) goto free; set_state_expr(my_id, expr->left, &filehandle); @@ -64,7 +64,7 @@ static void match_condition(struct expression *expr) if (get_state_expr(my_id, expr) == &filehandle) { char *name; - name = get_variable_from_expr(expr, NULL); + name = expr_to_str_sym(expr, NULL); sm_msg("error: comparing a filehandle against zero '%s'", name); set_state_expr(my_id, expr, &oktocheck); free_string(name); diff --git a/smatch.h b/smatch.h index 1d2f81f0..df843f2d 100644 --- a/smatch.h +++ b/smatch.h @@ -224,7 +224,7 @@ struct expression *get_argument_from_call_expr(struct expression_list *args, int num); char *expr_to_str_sym_complex(struct expression *expr, struct symbol **sym_ptr); -char *get_variable_from_expr(struct expression *expr, +char *expr_to_str_sym(struct expression *expr, struct symbol **sym_ptr); int sym_name_is(const char *name, struct expression *expr); int get_value(struct expression *expr, sval_t *val); diff --git a/smatch_buf_size.c b/smatch_buf_size.c index 6fff2634..d5a103e7 100644 --- a/smatch_buf_size.c +++ b/smatch_buf_size.c @@ -148,7 +148,7 @@ static int size_from_db(struct expression *expr) name = get_member_name(expr); if (!name && is_static(expr)) { - name = get_variable_from_expr(expr, NULL); + name = expr_to_str_sym(expr, NULL); this_file_only = 1; } if (!name) @@ -491,7 +491,7 @@ static void info_record_alloction(struct expression *buffer, struct expression * name = get_member_name(buffer); if (!name && is_static(buffer)) - name = get_variable_from_expr(buffer, NULL); + name = expr_to_str_sym(buffer, NULL); if (!name) return; if (get_implied_value(size, &sval)) @@ -547,7 +547,7 @@ static void match_strlen(const char *fn, struct expression *expr, void *unused) str = get_argument_from_call_expr(right->args, 0); len_expr = strip_expr(expr->left); - len_name = get_variable_from_expr(len_expr, NULL); + len_name = expr_to_str_sym(len_expr, NULL); if (!len_name) return; diff --git a/smatch_constraints.c b/smatch_constraints.c index fb282908..bfb732f0 100644 --- a/smatch_constraints.c +++ b/smatch_constraints.c @@ -213,7 +213,7 @@ void remove_from_equiv_expr(struct expression *expr) char *name; struct symbol *sym; - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; remove_from_equiv(name, sym); @@ -242,7 +242,7 @@ void set_equiv(struct expression *left, struct expression *right) struct symbol *left_sym; struct related_list *rlist; - left_name = get_variable_from_expr(left, &left_sym); + left_name = expr_to_str_sym(left, &left_sym); if (!left_name || !left_sym) goto free; diff --git a/smatch_db.c b/smatch_db.c index c0dd4400..bc67d962 100644 --- a/smatch_db.c +++ b/smatch_db.c @@ -194,7 +194,7 @@ static void print_struct_members(char *fn, char *global_static, struct expressio is_address = 1; } - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; @@ -394,7 +394,7 @@ static void match_function_assign(struct expression *expr) if (!sym || sym->type != SYM_FN) return; - fn_name = get_variable_from_expr(right, NULL); + fn_name = expr_to_str_sym(right, NULL); ptr_name = get_fnptr_name(expr->left); if (!fn_name || !ptr_name) goto free; @@ -643,7 +643,7 @@ static void print_returned_struct_members(int return_id, char *return_ranges, st type = get_real_base_type(type); if (!type || type->type != SYM_STRUCT) return; - name = get_variable_from_expr(expr, NULL); + name = expr_to_str_sym(expr, NULL); if (!name) return; diff --git a/smatch_extra.c b/smatch_extra.c index 9a7c9147..d113102d 100644 --- a/smatch_extra.c +++ b/smatch_extra.c @@ -79,7 +79,7 @@ struct sm_state *set_extra_expr_mod(struct expression *expr, struct smatch_state struct sm_state *ret = NULL; expr = strip_expr(expr); - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; ret = set_extra_mod(name, sym, state); @@ -116,7 +116,7 @@ void set_extra_expr_nomod(struct expression *expr, struct smatch_state *state) char *name; struct symbol *sym; - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; set_extra_nomod(name, sym, state); @@ -161,7 +161,7 @@ static void set_extra_expr_true_false(struct expression *expr, struct symbol *sym; expr = strip_expr(expr); - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; set_extra_true_false(name, sym, true_state, false_state); @@ -442,7 +442,7 @@ static void match_assign(struct expression *expr) if (is_condition(expr->right)) return; left = strip_expr(expr->left); - name = get_variable_from_expr(left, &sym); + name = expr_to_str_sym(left, &sym); if (!name) return; right = strip_parens(expr->right); @@ -452,7 +452,7 @@ static void match_assign(struct expression *expr) if (expr->op == '=' && right->type == EXPR_CALL) goto free; /* these are handled in smatch_function_hooks.c */ - right_name = get_variable_from_expr(right, &right_sym); + right_name = expr_to_str_sym(right, &right_sym); if (expr->op == '=' && right_name && right_sym && types_equiv_or_pointer(get_type(expr->left), get_type(expr->right))) { set_equiv(left, right); @@ -929,7 +929,7 @@ void __extra_match_condition(struct expression *expr) zero = sval_blank(expr); zero.value = 0; - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name) return; pre_state = get_state(my_id, name, sym); @@ -980,14 +980,14 @@ static char *get_variable_from_key(struct expression *arg, char *key, struct sym char *tmp; if (strcmp(key, "$$") == 0) - return get_variable_from_expr(arg, sym); + return expr_to_str_sym(arg, sym); if (strcmp(key, "*$$") == 0) { if (arg->type == EXPR_PREOP && arg->op == '&') { arg = strip_expr(arg->unop); - return get_variable_from_expr(arg, sym); + return expr_to_str_sym(arg, sym); } else { - tmp = get_variable_from_expr(arg, sym); + tmp = expr_to_str_sym(arg, sym); if (!tmp) return NULL; snprintf(buf, sizeof(buf), "*%s", tmp); @@ -998,14 +998,14 @@ static char *get_variable_from_key(struct expression *arg, char *key, struct sym if (arg->type == EXPR_PREOP && arg->op == '&') { arg = strip_expr(arg->unop); - tmp = get_variable_from_expr(arg, sym); + tmp = expr_to_str_sym(arg, sym); if (!tmp) return NULL; snprintf(buf, sizeof(buf), "%s.%s", tmp, key + 4); return alloc_string(buf); } - tmp = get_variable_from_expr(arg, sym); + tmp = expr_to_str_sym(arg, sym); if (!tmp) return NULL; snprintf(buf, sizeof(buf), "%s%s", tmp, key + 2); @@ -1118,9 +1118,9 @@ static void db_returned_states_param(struct expression *expr, int param, char *k if (arg->type == EXPR_PREOP && arg->op == '&') { arg = strip_expr(arg->unop); - name = get_variable_from_expr(arg, &sym); + name = expr_to_str_sym(arg, &sym); } else { - char *tmp = get_variable_from_expr(arg, &sym); + char *tmp = expr_to_str_sym(arg, &sym); if (!tmp) return; @@ -1141,12 +1141,12 @@ static void db_returned_states_param(struct expression *expr, int param, char *k if (arg->type == EXPR_PREOP && arg->op == '&') { arg = strip_expr(arg->unop); - name = get_variable_from_expr(arg, &sym); + name = expr_to_str_sym(arg, &sym); if (!name || !sym) goto free; snprintf(member_name, sizeof(member_name), "%s.%s", name, key + 4); } else { - name = get_variable_from_expr(arg, &sym); + name = expr_to_str_sym(arg, &sym); if (!name || !sym) goto free; snprintf(member_name, sizeof(member_name), "%s%s", name, key + 2); @@ -1171,7 +1171,7 @@ static void db_returned_member_info(struct expression *expr, int param, char *ke if (expr->type != EXPR_ASSIGNMENT) return; - name = get_variable_from_expr(expr->left, &sym); + name = expr_to_str_sym(expr->left, &sym); if (!name || !sym) goto free; snprintf(member_name, sizeof(member_name), "%s%s", name, key + 2); diff --git a/smatch_function_hooks.c b/smatch_function_hooks.c index f26aa747..ea39d292 100644 --- a/smatch_function_hooks.c +++ b/smatch_function_hooks.c @@ -240,7 +240,7 @@ static int assign_ranged_funcs(const char *fn, struct expression *expr, if (!call_backs) return 0; - var_name = get_variable_from_expr(expr->left, &sym); + var_name = expr_to_str_sym(expr->left, &sym); if (!var_name || !sym) goto free; @@ -718,7 +718,7 @@ int get_implied_return(struct expression *expr, struct range_list **rl) *rl = NULL; expr = strip_expr(expr); - fn = get_variable_from_expr(expr->fn, NULL); + fn = expr_to_str_sym(expr->fn, NULL); if (!fn) goto out; diff --git a/smatch_helper.c b/smatch_helper.c index af7022f0..3d8618af 100644 --- a/smatch_helper.c +++ b/smatch_helper.c @@ -267,7 +267,7 @@ char *expr_to_str_sym_complex(struct expression *expr, struct symbol **sym_ptr) * then it returns NULL. */ -char *get_variable_from_expr(struct expression *expr, +char *expr_to_str_sym(struct expression *expr, struct symbol **sym_ptr) { static char var_name[VAR_LEN]; @@ -467,7 +467,7 @@ char *get_member_name(struct expression *expr) char *get_fnptr_name(struct expression *expr) { if (expr->type == EXPR_SYMBOL) - return get_variable_from_expr(expr, NULL); + return expr_to_str_sym(expr, NULL); return get_member_name(expr); } diff --git a/smatch_implied.c b/smatch_implied.c index a2875ce8..b8973a21 100644 --- a/smatch_implied.c +++ b/smatch_implied.c @@ -496,7 +496,7 @@ static void handle_zero_comparison(struct expression *expr, expr = expr->left; } - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; sm = get_sm_state(SMATCH_EXTRA, name, sym); @@ -549,7 +549,7 @@ struct range_list *__get_implied_values(struct expression *switch_expr) struct smatch_state *state; struct range_list *ret = NULL; - name = get_variable_from_expr(switch_expr, &sym); + name = expr_to_str_sym(switch_expr, &sym); if (!name || !sym) goto free; state = get_state(SMATCH_EXTRA, name, sym); @@ -581,7 +581,7 @@ struct state_list *__implied_case_slist(struct expression *switch_expr, sval_t sval; struct range_list *vals = NULL; - name = get_variable_from_expr(switch_expr, &sym); + name = expr_to_str_sym(switch_expr, &sym); if (!name || !sym) goto free; sm = get_sm_state_slist(*raw_slist, SMATCH_EXTRA, name, sym); diff --git a/smatch_math.c b/smatch_math.c index 0f84dcb9..5b2d8514 100644 --- a/smatch_math.c +++ b/smatch_math.c @@ -457,7 +457,7 @@ static int get_implied_value_helper(struct expression *expr, sval_t *sval, int i if (get_value(expr, sval)) return 1; - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name) return 0; *sval = sval_blank(expr); diff --git a/smatch_modification_hooks.c b/smatch_modification_hooks.c index 491d53e4..55b1b7b9 100644 --- a/smatch_modification_hooks.c +++ b/smatch_modification_hooks.c @@ -64,7 +64,7 @@ static void call_modification_hooks(struct expression *expr) struct sm_state *sm; int match; - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; slist = __get_cur_slist(); diff --git a/smatch_parse_call_math.c b/smatch_parse_call_math.c index 71bdd450..287b7baf 100644 --- a/smatch_parse_call_math.c +++ b/smatch_parse_call_math.c @@ -472,7 +472,7 @@ static void print_returned_allocations(int return_id, char *return_ranges, struc return; } - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; diff --git a/smatch_states.c b/smatch_states.c index 9223b5e8..aab9768b 100644 --- a/smatch_states.c +++ b/smatch_states.c @@ -135,7 +135,7 @@ struct sm_state *set_state_expr(int owner, struct expression *expr, struct smatc struct sm_state *ret = NULL; expr = strip_expr(expr); - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; ret = set_state(owner, name, sym, state); @@ -214,7 +214,7 @@ struct smatch_state *get_state_expr(int owner, struct expression *expr) struct smatch_state *ret = NULL; expr = strip_expr(expr); - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; ret = get_state(owner, name, sym); @@ -240,7 +240,7 @@ struct state_list *get_possible_states_expr(int owner, struct expression *expr) struct state_list *ret = NULL; expr = strip_expr(expr); - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; ret = get_possible_states(owner, name, sym); @@ -261,7 +261,7 @@ struct sm_state *get_sm_state_expr(int owner, struct expression *expr) struct sm_state *ret = NULL; expr = strip_expr(expr); - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; ret = get_sm_state(owner, name, sym); @@ -286,7 +286,7 @@ void delete_state_expr(int owner, struct expression *expr) struct symbol *sym; expr = strip_expr(expr); - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; delete_state(owner, name, sym); @@ -369,7 +369,7 @@ void set_true_false_states_expr(int owner, struct expression *expr, struct symbol *sym; expr = strip_expr(expr); - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; set_true_false_states(owner, name, sym, true_state, false_state); diff --git a/smatch_tracker.c b/smatch_tracker.c index 04429822..51bc6cff 100644 --- a/smatch_tracker.c +++ b/smatch_tracker.c @@ -38,7 +38,7 @@ void add_tracker_expr(struct tracker_list **list, int owner, struct expression * char *name; struct symbol *sym; - name = get_variable_from_expr(expr, &sym); + name = expr_to_str_sym(expr, &sym); if (!name || !sym) goto free; add_tracker(list, owner, name, sym);