コード例 #1
0
ファイル: check_capable.c プロジェクト: UIKit0/smatch
static void save_return_info(int return_id, char *return_ranges, struct expression *expr)
{
	struct sm_state *sm;

	FOR_EACH_MY_SM(capable_id, __get_cur_stree(), sm) {
		if (sm->state == &capable)
			sql_insert_return_states(return_id, return_ranges,
						 CAPABLE, 0, sm->name, "");
	} END_FOR_EACH_SM(sm);

	FOR_EACH_MY_SM(ns_capable_id, __get_cur_stree(), sm) {
		if (sm->state == &capable)
			sql_insert_return_states(return_id, return_ranges,
						 CAPABLE, 0, sm->name, "");
	} END_FOR_EACH_SM(sm);
}
コード例 #2
0
ファイル: smatch_param_cleared.c プロジェクト: ecashin/smatch
static void print_return_value_param(int return_id, char *return_ranges, struct expression *expr)
{
	struct state_list *my_slist;
	struct sm_state *sm;
	int param;

	my_slist = get_all_states(my_id);

	FOR_EACH_PTR(my_slist, sm) {
		param = get_param_num_from_sym(sm->sym);
		if (param < 0)
			continue;

		if (sm->state == &zeroed) {
			sql_insert_return_states(return_id, return_ranges,
						 PARAM_CLEARED, param, "$$", "0");
		}

		if (sm->state == &cleared) {
			sql_insert_return_states(return_id, return_ranges,
						 PARAM_CLEARED, param, "$$", "");
		}
	} END_FOR_EACH_PTR(sm);