Lines Matching refs:E

100 #define MAGIC_SEL_ANALYZED_PTR_HAS_TRG_FUNCTION(E)                             \  argument
101 (((E)->u.ptr.trg_flags & MAGIC_STATE_TEXT) != 0)
102 #define MAGIC_SEL_ANALYZED_PTR_HAS_TRG_SENTRY(E) \ argument
103 ((E)->u.ptr.trg_flags && !MAGIC_SEL_ANALYZED_PTR_HAS_TRG_FUNCTION(E))
104 #define MAGIC_SEL_ANALYZED_PTR_SENTRY(E) \ argument
105 ((E)->u.ptr.trg_flags & MAGIC_SEL_ANALYZE_RETURN_TRG_PTRS) \
106 ? (E)->u.ptr.trg_p.dsentry->sentry \
107 : (E)->u.ptr.trg.dsentry.sentry
108 #define MAGIC_SEL_ANALYZED_PTR_SENTRY_ADDRESS(E) \ argument
109 ((E)->u.ptr.trg_flags & MAGIC_SEL_ANALYZE_RETURN_TRG_PTRS) \
110 ? &((E)->u.ptr.trg_p.dsentry->sentry) \
111 : &((E)->u.ptr.trg.dsentry.sentry)
112 #define MAGIC_SEL_ANALYZED_PTR_FUNCTION(E) \ argument
113 ((E)->u.ptr.trg_flags & MAGIC_SEL_ANALYZE_RETURN_TRG_PTRS) \
114 ? (E)->u.ptr.trg_p.dfunction->function \
115 : (E)->u.ptr.trg.dfunction.function
116 #define MAGIC_SEL_ANALYZED_PTR_TRG_NAME(E) \ argument
117 (MAGIC_SEL_ANALYZED_PTR_HAS_SPECIAL_TRG_TYPE(E) ? "" \
118 : MAGIC_SEL_ANALYZED_PTR_HAS_TRG_FUNCTION(E) \
119 ? (MAGIC_SEL_ANALYZED_PTR_FUNCTION(E)).name \
120 : (MAGIC_SEL_ANALYZED_PTR_HAS_TRG_SENTRY(E) \
121 ? (MAGIC_SEL_ANALYZED_PTR_SENTRY(E)).name : "?"))
122 #define MAGIC_SEL_ANALYZED_PTR_TRG_ADDRESS(E) \ argument
123 (MAGIC_SEL_ANALYZED_PTR_HAS_SPECIAL_TRG_TYPE(E) ? NULL \
124 : MAGIC_SEL_ANALYZED_PTR_HAS_TRG_FUNCTION(E) \
125 ? (MAGIC_SEL_ANALYZED_PTR_FUNCTION(E)).address \
126 : (MAGIC_SEL_ANALYZED_PTR_SENTRY(E)).address)
127 #define MAGIC_SEL_ANALYZED_PTR_PRINT_TRG_ABS_NAME(E) \ argument
129 if (MAGIC_SEL_ANALYZED_PTR_HAS_SPECIAL_TRG_TYPE(E) \
130 || MAGIC_SEL_ANALYZED_PTR_HAS_TRG_FUNCTION(E)) { \
131 _magic_printf(MAGIC_SEL_ANALYZED_PTR_TRG_NAME(E)); \
134 MAGIC_SEL_ANALYZED_PTR_SENTRY_ADDRESS(E)); \
137 #define MAGIC_SEL_ANALYZED_PTR_FIRST_TRG_TYPE(E) \ argument
138 ((E)->u.ptr.trg_selements[0].type)
139 #define MAGIC_SEL_ANALYZED_PTR_HAS_SPECIAL_TRG_TYPE(E) \ argument
140 (MAGIC_TYPE_IS_SPECIAL(MAGIC_SEL_ANALYZED_PTR_FIRST_TRG_TYPE(E)))
141 #define MAGIC_SEL_ANALYZED_PTR_SET_SPECIAL_TRG_TYPE(E,T) \ argument
143 (E)->u.ptr.trg_selements[0].type = T; \
144 (E)->u.ptr.num_trg_types = 1; \
145 (E)->u.ptr.num_legal_trg_types = 0; \
146 (E)->u.ptr.first_legal_trg_type = -1; \
148 #define MAGIC_SEL_ANALYZED_TRG_FLAGS(E) \ argument
149 ((E)->type_id == MAGIC_TYPE_POINTER ? (E)->u.ptr.trg_flags \
150 : (E)->u.nonptr.trg_flags)
151 #define MAGIC_SEL_ANALYZED_FLAG(E,F) (((E)->flags & F) != 0) argument
152 #define MAGIC_SEL_ANALYZED_TRG_STATS_HAS_VIOLATIONS(E) \ argument
153 ((E) == _other_types_found || (E) == _badentry_found)
154 #define MAGIC_SEL_ANALYZED_TRG_STATS_C(E) \ argument
155 ((E) == _ptr_type_found ? 'p' : (E) == _other_types_found ? 'o' \
156 : (E) == _void_type_found ? 'v' : (E) == _comp_trg_types_found ? 'c' \
157 : (E) == _badentry_found ? 'b' : '?')
159 #define MAGIC_SEL_ANALYZED_PRINT(E, FLAGS) do { \ argument
161 (E)->num, (E)->type_id == MAGIC_TYPE_POINTER ? "ptr" : "nonptr", \
162 MAGIC_SEL_ANALYZED_FLAG(E, MAGIC_SEL_FOUND_DATA), \
163 MAGIC_SEL_ANALYZED_FLAG(E, MAGIC_SEL_FOUND_INVARIANTS), \
164 MAGIC_SEL_ANALYZED_FLAG(E, MAGIC_SEL_FOUND_VIOLATIONS), \
165 MAGIC_SEL_ANALYZED_FLAG(E, MAGIC_SEL_FOUND_WALKABLE)); \
166 if((E)->type_id == MAGIC_TYPE_POINTER) { \
167 _magic_printf(", value=0x%08x, trg_name=", (E)->u.ptr.value); \
168 MAGIC_SEL_ANALYZED_PTR_PRINT_TRG_ABS_NAME(E); \
170 (E)->u.ptr.trg_offset, \
171 (E)->u.ptr.trg_flags \
172 ? MAGIC_STATE_FLAGS_REGION_C((E)->u.ptr.trg_flags) : 0, \
173 (E)->u.ptr.trg_flags \
174 ? MAGIC_STATE_FLAGS_LIBSPEC_C((E)->u.ptr.trg_flags) : 0); \
175 if((E)->u.ptr.num_trg_types > 0) { \
177 magic_sel_analyzed_trg_selements_print(E, FLAGS); \
182 (E)->u.nonptr.value, (E)->u.nonptr.value); \
183 if((E)->u.nonptr.trg_flags) { \
185 MAGIC_STATE_FLAGS_REGION_C((E)->u.nonptr.trg_flags), \
186 MAGIC_STATE_FLAGS_LIBSPEC_C((E)->u.nonptr.trg_flags)); \
240 #define MAGIC_SEL_STATS_PRINT(E) do { \ argument
242 (E)->ptr_found ? "ptr" : "nonptr"); \
243 if((E)->trg_flags) { \
245 MAGIC_STATE_FLAGS_REGION_C((E)->trg_flags), \
246 MAGIC_STATE_FLAGS_LIBSPEC_C((E)->trg_flags)); \
248 if((E)->ptr_found) _magic_printf(", ptr_found=%d", (E)->ptr_found); \
249 if((E)->nonptr_found) \
250 _magic_printf(", nonptr_found=%d", (E)->nonptr_found); \
251 if((E)->nonptr_unconstrained_found) \
253 (E)->nonptr_unconstrained_found); \
254 if((E)->ptr_type_found) \
255 _magic_printf(", ptr_type_found=%d", (E)->ptr_type_found); \
256 if((E)->other_types_found) \
257 _magic_printf(", other_types_found=%d", (E)->other_types_found); \
258 if((E)->null_type_found) \
259 _magic_printf(", null_type_found=%d", (E)->null_type_found); \
260 if((E)->badoffset_found) \
261 _magic_printf(", badoffset_found=%d", (E)->badoffset_found); \
262 if((E)->unknown_found) \
263 _magic_printf(", unknown_found=%d", (E)->unknown_found); \
264 if((E)->void_type_found) \
265 _magic_printf(", void_type_found=%d", (E)->void_type_found); \
266 if((E)->comp_trg_types_found) \
268 (E)->comp_trg_types_found); \
269 if((E)->value_found) \
270 _magic_printf(", value_found=%d", (E)->value_found); \
271 if((E)->badvalue_found) \
272 _magic_printf(", badvalue_found=%d", (E)->badvalue_found); \
273 if((E)->badentry_found) \
274 _magic_printf(", badentry_found=%d", (E)->badentry_found); \
275 _magic_printf(", violations=%d", MAGIC_SEL_STATS_NUM_VIOLATIONS(E)); \