smatch: rename get_variable_from_expr() to expr_to_str_sym()
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 11 Jan 2013 12:52:45 +0000 (11 15:52 +0300)
committerDan Carpenter <dan.carpenter@oracle.com>
Fri, 11 Jan 2013 12:52:45 +0000 (11 15:52 +0300)
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
47 files changed:
check_allocation_funcs.c
check_bogus_loop.c
check_call_tree.c
check_container_of.c
check_dev_queue_xmit.c
check_dma_on_stack.c
check_free.c
check_freeing_null.c
check_frees_argument.c
check_get_user_overflow.c
check_info_leak.c
check_kmalloc_to_bugon.c
check_kunmap.c
check_leaks.c
check_locking.c
check_macro_side_effects.c
check_memory.c
check_missing_break.c
check_overflow.c
check_passes_sizeof.c
check_pointer_math.c
check_proc_create.c
check_propagate.c
check_puts_argument.c
check_redundant_null_check.c
check_release_resource.c
check_rosenberg.c
check_sizeof.c
check_template.c
check_unused_ret.c
check_unwind.c
check_user_data.c
check_wine_WtoA.c
check_wine_filehandles.c
smatch.h
smatch_buf_size.c
smatch_constraints.c
smatch_db.c
smatch_extra.c
smatch_function_hooks.c
smatch_helper.c
smatch_implied.c
smatch_math.c
smatch_modification_hooks.c
smatch_parse_call_math.c
smatch_states.c
smatch_tracker.c

index 604799e..e56b1bb 100644 (file)
@@ -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;
index 7ddffcb..30cf40e 100644 (file)
@@ -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))
index d22ad40..adcc81d 100644 (file)
@@ -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();
index 0f254cd..b28f854 100644 (file)
@@ -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);
index d0ce87e..b3e784f 100644 (file)
@@ -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);
 }
index 79a9f40..6d3ea26 100644 (file)
@@ -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);
 }
index 6e23cac..f91466e 100644 (file)
@@ -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);
index c1ca9d5..1302f71 100644 (file)
@@ -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);
 }
index 3d3c048..da094d9 100644 (file)
@@ -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);
        }
index ed7f72b..88c7770 100644 (file)
@@ -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)
index c282432..563a1f7 100644 (file)
@@ -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);
 }
index 43aa0d3..4911b07 100644 (file)
@@ -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);
 }
index 22478af..5a18c46 100644 (file)
@@ -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"))
index 45115d4..f85fba9 100644 (file)
@@ -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);
 
index 346a09d..4b8f125 100644 (file)
@@ -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, "");
index e40f136..0d6ddc6 100644 (file)
@@ -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)
index 78215d5..87ba8a5 100644 (file)
@@ -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);
index 3fbaf3c..f670524 100644 (file)
@@ -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);
        }
index c45f825..fa34cbe 100644 (file)
@@ -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\""))
index 71b5ed5..253de25 100644 (file)
@@ -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)
index a193ee5..39d2a7f 100644 (file)
@@ -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);
index 4786e2b..5497ad9 100644 (file)
@@ -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);
 }
index 74ae3e7..f7a3f2c 100644 (file)
@@ -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);
index e61153f..317078f 100644 (file)
@@ -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);
index 4392d65..08329d5 100644 (file)
@@ -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))
index f6f3327..4304139 100644 (file)
@@ -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))
index ab91a6f..4ec2281 100644 (file)
@@ -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;
index 6f89fdf..5320946 100644 (file)
@@ -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);
index f5a2b52..07de525 100644 (file)
@@ -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 {
index 186076f..e9b6d64 100644 (file)
@@ -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);
index 80d25d2..18c606d 100644 (file)
@@ -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);
index 198efea..7d3044c 100644 (file)
@@ -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);
index e2cc1f7..93dbef5 100644 (file)
@@ -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);
index 087fc4e..934dbbf 100644 (file)
@@ -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);
index 1d2f81f..df843f2 100644 (file)
--- 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);
index 6fff263..d5a103e 100644 (file)
@@ -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;
 
index fb28290..bfb732f 100644 (file)
@@ -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;
 
index c0dd440..bc67d96 100644 (file)
@@ -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;
 
index 9a7c914..d113102 100644 (file)
@@ -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);
index f26aa74..ea39d29 100644 (file)
@@ -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;
 
index af7022f..3d8618a 100644 (file)
@@ -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);
 }
 
index a2875ce..b8973a2 100644 (file)
@@ -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);
index 0f84dcb..5b2d851 100644 (file)
@@ -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);
index 491d53e..55b1b7b 100644 (file)
@@ -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();
index 71bdd45..287b7ba 100644 (file)
@@ -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;
 
index 9223b5e..aab9768 100644 (file)
@@ -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);
index 0442982..51bc6cf 100644 (file)
@@ -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);