From 56af40032813062ab6a49f17a7a6e4f551a87ed1 Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Thu, 19 Dec 2013 18:16:47 +0300 Subject: [PATCH] debug: add __smatch_member_name() Just to make sure this feature is working correctly. It seems like it's basically ok actually. Signed-off-by: Dan Carpenter --- check_debug.c | 14 ++++++++++++++ check_debug.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/check_debug.c b/check_debug.c index 94ea88d9..5af5d95a 100644 --- a/check_debug.c +++ b/check_debug.c @@ -233,6 +233,19 @@ free: free_string(name); } +static void match_member_name(const char *fn, struct expression *expr, void *info) +{ + struct expression *arg; + char *name, *member_name; + + arg = get_argument_from_call_expr(expr->args, 0); + name = expr_to_str(arg); + member_name = get_member_name(arg); + sm_msg("member name: '%s => %s'", name, member_name); + free_string(member_name); + free_string(name); +} + static void print_possible(struct sm_state *sm) { struct sm_state *tmp; @@ -402,6 +415,7 @@ void check_debug(int id) add_function_hook("__smatch_absolute_min", &match_print_absolute_min, NULL); add_function_hook("__smatch_absolute_max", &match_print_absolute_max, NULL); add_function_hook("__smatch_sval_info", &match_sval_info, NULL); + add_function_hook("__smatch_member_name", &match_member_name, NULL); add_function_hook("__smatch_possible", &match_possible, NULL); add_function_hook("__smatch_cur_slist", &match_cur_slist, NULL); add_function_hook("__smatch_strlen", &match_strlen, NULL); diff --git a/check_debug.h b/check_debug.h index be7a3eb3..7e4e4cde 100644 --- a/check_debug.h +++ b/check_debug.h @@ -18,6 +18,8 @@ static inline void __smatch_absolute_max(long long val){} static inline void __smatch_sval_info(long long val){} +static inline void __smatch_member_name(long long val){} + static inline void __smatch_possible(const char *unused){} static inline void __smatch_print_value(const char *unused){} -- 2.11.4.GIT