*new* impossible_mask: complain if people do "if ((x & 2) == 1"
[smatch.git] / check_list.h
blob29d73df00e621ae0c9888ab4ba4d374d3bc12405
1 #ifndef CK
2 #define CK(_x) void _x(int id);
3 #define __undo_CK_def
4 #endif
6 CK(register_smatch_extra) /* smatch_extra always has to be first */
7 CK(register_smatch_extra_links)
8 CK(register_modification_hooks)
9 CK(register_definition_db_callbacks)
10 CK(register_project)
11 CK(register_untracked_param)
12 CK(register_buf_comparison)
13 CK(register_buf_comparison_links)
15 CK(register_smatch_ignore)
16 CK(register_buf_size)
17 CK(register_strlen)
18 CK(register_strlen_equiv)
19 CK(register_capped)
20 CK(register_parse_call_math)
21 CK(register_param_limit)
22 CK(register_param_filter)
23 CK(register_param_set)
24 CK(register_param_cleared)
25 CK(register_struct_assignment)
26 CK(register_comparison)
27 CK(register_comparison_links)
28 CK(register_comparison_inc_dec)
29 CK(register_comparison_inc_dec_links)
30 CK(register_local_values)
31 CK(register_function_ptrs)
32 CK(register_annotate)
33 CK(register_start_states)
34 CK(register_type_val)
35 CK(register_data_source)
36 CK(register_common_functions)
37 CK(register_function_info)
38 CK(register_auto_copy)
39 CK(register_type_links)
40 CK(register_impossible)
41 CK(register_impossible_return)
42 CK(register_param_used)
43 CK(register_strings)
45 CK(check_debug)
46 CK(check_user_data)
48 CK(check_user_data2)
49 CK(check_user_data3)
51 CK(check_bogus_loop)
53 CK(check_deref)
54 CK(check_check_deref)
55 CK(check_dereferences_param)
56 CK(check_frees_param)
57 CK(check_overflow)
58 CK(check_leaks)
59 CK(check_type)
60 CK(check_allocation_funcs)
61 CK(check_frees_argument)
62 CK(check_balanced)
63 CK(check_deref_check)
64 CK(check_signed)
65 CK(check_precedence)
66 CK(check_unused_ret)
67 CK(check_dma_on_stack)
68 CK(check_param_mapper)
69 CK(check_call_tree)
70 CK(check_dev_queue_xmit)
71 CK(check_stack)
72 CK(check_no_return)
73 CK(check_mod_timer)
74 CK(check_return)
75 CK(check_resource_size)
76 CK(check_release_resource)
77 CK(check_proc_create)
78 CK(check_freeing_null)
79 CK(check_free)
80 CK(check_no_effect)
81 CK(check_kunmap)
82 CK(check_snprintf)
83 CK(check_macros)
84 CK(check_return_efault)
85 CK(check_gfp_dma)
86 CK(check_unwind)
87 CK(check_kmalloc_to_bugon)
88 CK(check_platform_device_put)
89 CK(check_info_leak)
90 CK(check_return_enomem)
91 CK(check_get_user_overflow)
92 CK(check_get_user_overflow2)
93 CK(check_access_ok_math)
94 CK(check_container_of)
95 CK(check_input_free_device)
96 CK(check_select)
97 CK(check_memset)
98 CK(check_logical_instead_of_bitwise)
99 CK(check_kmalloc_wrong_size)
100 CK(check_pointer_math)
101 CK(check_bit_shift)
102 CK(check_macro_side_effects)
103 CK(check_sizeof)
104 CK(check_return_cast)
105 CK(check_or_vs_and)
106 CK(check_passes_sizeof)
107 CK(check_assign_vs_compare)
108 CK(check_missing_break)
109 CK(check_array_condition)
110 CK(check_struct_type)
111 CK(check_64bit_shift)
112 CK(check_wrong_size_arg)
113 CK(check_cast_assign)
114 CK(check_readl_infinite_loops)
115 CK(check_double_checking)
116 CK(check_shift_to_zero)
117 CK(check_indenting)
118 CK(check_unreachable)
119 CK(check_no_if_block)
120 CK(check_buffer_too_small_for_struct)
121 CK(check_impossible_mask)
123 /* <- your test goes here */
124 /* CK(register_template) */
126 /* kernel specific */
127 CK(check_kernel_printf)
128 CK(check_locking)
129 CK(check_puts_argument)
130 CK(check_err_ptr)
131 CK(check_err_ptr_deref)
132 CK(check_expects_err_ptr)
133 CK(check_held_dev)
134 CK(check_return_negative_var)
135 CK(check_rosenberg)
136 CK(check_rosenberg2)
137 CK(check_wait_for_common)
138 CK(check_bogus_irqrestore)
139 CK(check_zero_to_err_ptr)
140 CK(check_off_by_one_relative)
141 CK(check_capable)
142 CK(check_ns_capable)
143 CK(check_test_bit)
144 CK(check_dma_mapping_error)
146 /* wine specific stuff */
147 CK(check_wine_filehandles)
148 CK(check_wine_WtoA)
150 #include "check_list_local.h"
152 CK(register_stored_conditions)
153 CK(register_stored_conditions_links)
154 CK(register_sval)
155 CK(register_buf_size_late)
156 CK(register_modification_hooks_late)
157 CK(register_smatch_extra_late)
158 CK(check_assigned_expr) /* This is used by smatch_extra.c so it has to come really late */
159 CK(check_assigned_expr_links)
160 CK(register_function_hooks)
161 CK(check_kernel) /* this is overwriting stuff from smatch_extra_late */
162 CK(register_returns)
163 CK(register_db_call_marker) /* always second last */
165 * Implications always has to be last. If you need to be after implications
166 * then you need to hack smatch_implications.c and add function calls there.
169 CK(register_implications)
171 #ifdef __undo_CK_def
172 #undef CK
173 #undef __undo_CK_def
174 #endif