Lines Matching defs:label
134 static void dfsan_check_label(dfsan_label label) {
135 if (label == kInitializingLabel) {
160 dfsan_label label = 0;
161 if (atomic_compare_exchange_strong(table_ent, &label, kInitializingLabel,
165 // in the cases we are interested in) a label may only subsume labels
169 label = l2;
171 label =
173 dfsan_check_label(label);
174 __dfsan_label_info[label].l1 = l1;
175 __dfsan_label_info[label].l2 = l2;
177 atomic_store(table_ent, label, memory_order_release);
178 } else if (label == kInitializingLabel) {
182 label = atomic_load(table_ent, memory_order_acquire);
183 } while (label == kInitializingLabel);
185 return label;
190 dfsan_label label = ls[0];
193 if (label != next_label)
194 label = __dfsan_union(label, next_label);
196 return label;
208 // label-free program.
211 Report("WARNING: DataFlowSanitizer: saw nonzero label\n");
234 dfsan_label label =
236 dfsan_check_label(label);
237 __dfsan_label_info[label].l1 = __dfsan_label_info[label].l2 = 0;
238 __dfsan_label_info[label].desc = desc;
239 __dfsan_label_info[label].userdata = userdata;
240 return label;
244 void __dfsan_set_label(dfsan_label label, void *addr, uptr size) {
246 // Don't write the label if it is already the value we need it to be.
252 // write when both |label| and |*labelp| are zero dramatically reduces
254 if (label == *labelp)
257 *labelp = label;
262 void dfsan_set_label(dfsan_label label, void *addr, uptr size) {
263 __dfsan_set_label(label, addr, size);
267 void dfsan_add_label(dfsan_label label, void *addr, uptr size) {
269 if (*labelp != label)
270 *labelp = __dfsan_union(*labelp, label);
274 // depends on the label of one of its arguments. Hence it is implemented as a
291 const struct dfsan_label_info *dfsan_get_label_info(dfsan_label label) {
292 return &__dfsan_label_info[label];
296 dfsan_has_label(dfsan_label label, dfsan_label elem) {
297 if (label == elem)
299 const dfsan_label_info *info = dfsan_get_label_info(label);
308 dfsan_has_label_with_desc(dfsan_label label, const char *desc) {
309 const dfsan_label_info *info = dfsan_get_label_info(label);
423 __dfsan_label_info[kInitializingLabel].desc = "<init label>";