2 * smatch/check_db_info.c
4 * Copyright (C) 2010 Dan Carpenter.
6 * Licensed under the Open Software License version 1.1
11 #include "smatch_extra.h"
15 static struct range_list_sval
*return_ranges
;
17 static void add_return_range(struct range_list_sval
*rl
)
23 return_ranges
= range_list_union_sval(return_ranges
, rl
);
26 static void match_return(struct expression
*ret_value
)
28 struct range_list_sval
*rl
;
29 struct symbol
*type
= cur_func_return_type();
31 ret_value
= strip_expr(ret_value
);
35 if (get_implied_range_list_sval(ret_value
, &rl
))
38 add_return_range(whole_range_list_sval(type
));
41 static void match_end_func(struct symbol
*sym
)
45 sm_msg("info: function_return_values '%s' %s",
46 show_ranges_sval(return_ranges
), global_static());
50 void check_db_info(int id
)
55 add_hook(&match_return
, RETURN_HOOK
);
56 add_hook(&match_end_func
, END_FUNC_HOOK
);