Silence the mutually exclusive output again.
[smatch.git] / smatch_extra.h
blob7ab87e4cb63fbf97ca2c9fdf3173e4b023111db6
1 /*
2 * sparse/smatch_extra.h
4 * Copyright (C) 2009 Dan Carpenter.
6 * Licensed under the Open Software License version 1.1
8 */
10 enum data_type {
11 DATA_NUM,
14 DECLARE_PTR_LIST(num_list, long long);
16 struct data_info {
17 enum data_type type;
18 int merged;
19 struct num_list *values;
21 DECLARE_ALLOCATOR(data_info);
23 /* these are implimented in smatch_extra_helper.c */
24 struct data_info *alloc_data_info(long long num);
25 void add_num(struct num_list **list, long long num);
26 struct num_list *num_list_union(struct num_list *one, struct num_list *two);
27 int num_matches(struct data_info *dinfo, long long num);
28 long long get_single_value(struct data_info *dinfo);
29 int possibly_true(int comparison, struct data_info *dinfo, int num, int left);
30 int possibly_false(int comparison, struct data_info *dinfo, int num, int left);
31 void free_data_info_allocs(void);
33 /* used in smatch_slist. implemented in smatch_extra.c */
34 struct sm_state *__extra_merge(struct sm_state *one, struct state_list *slist1,
35 struct sm_state *two, struct state_list *slist2);
36 struct sm_state *__extra_and_merge(struct sm_state *sm,
37 struct state_list_stack *stack);