From 9cc2c758c90f5e973f625d27d35a5e27e396a755 Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Mon, 24 Nov 2014 14:43:44 +0300 Subject: [PATCH] hooks: add a FUNCTION_CALL_HOOK_AFTER hook This will be called after the other function hooks have been run. Signed-off-by: Dan Carpenter --- smatch.h | 1 + smatch_flow.c | 1 + smatch_hooks.c | 3 +++ 3 files changed, 5 insertions(+) diff --git a/smatch.h b/smatch.h index 544c1192..3d7fe9b6 100644 --- a/smatch.h +++ b/smatch.h @@ -106,6 +106,7 @@ enum hook_type { WHOLE_CONDITION_HOOK, FUNCTION_CALL_HOOK, CALL_HOOK_AFTER_INLINE, + FUNCTION_CALL_HOOK_AFTER, CALL_ASSIGNMENT_HOOK, MACRO_ASSIGNMENT_HOOK, BINOP_HOOK, diff --git a/smatch_flow.c b/smatch_flow.c index 1ecb497f..d136c888 100644 --- a/smatch_flow.c +++ b/smatch_flow.c @@ -323,6 +323,7 @@ void __split_expr(struct expression *expr) parse_inline(expr); } __pass_to_client(expr, CALL_HOOK_AFTER_INLINE); + __pass_to_client(expr, FUNCTION_CALL_HOOK_AFTER); if (is_noreturn_func(expr->fn)) nullify_path(); break; diff --git a/smatch_hooks.c b/smatch_hooks.c index 5782be98..ec0a2a7b 100644 --- a/smatch_hooks.c +++ b/smatch_hooks.c @@ -110,6 +110,9 @@ void add_hook(void *func, enum hook_type type) case CALL_HOOK_AFTER_INLINE: container->data_type = EXPR_PTR; break; + case FUNCTION_CALL_HOOK_AFTER: + container->data_type = EXPR_PTR; + break; case DEREF_HOOK: container->data_type = EXPR_PTR; break; -- 2.11.4.GIT