KCSAN_ACCESS_SCOPED
&(var), sizeof(var), KCSAN_ACCESS_SCOPED | (type), \
reorder_access->type = type | KCSAN_ACCESS_SCOPED;
if (!(type & KCSAN_ACCESS_SCOPED)) {
{ test_kernel_assert_writer_scoped, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT | KCSAN_ACCESS_SCOPED },
{ test_enter_scope, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT | KCSAN_ACCESS_SCOPED },
{ test_kernel_assert_access_scoped, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT | KCSAN_ACCESS_WRITE | KCSAN_ACCESS_SCOPED },
{ test_enter_scope, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT | KCSAN_ACCESS_WRITE | KCSAN_ACCESS_SCOPED },
const bool is_scoped = (ty & KCSAN_ACCESS_SCOPED);
r->access[0].type |= KCSAN_ACCESS_SCOPED;
r->access[0].type &= ~KCSAN_ACCESS_SCOPED;
r->access[1].type |= KCSAN_ACCESS_SCOPED;
r->access[1].type &= ~KCSAN_ACCESS_SCOPED;
reorder_access->type = (access_type) | KCSAN_ACCESS_SCOPED; \
if (type & KCSAN_ACCESS_SCOPED) {
case KCSAN_ACCESS_SCOPED:
case KCSAN_ACCESS_SCOPED | KCSAN_ACCESS_ATOMIC:
case KCSAN_ACCESS_SCOPED | KCSAN_ACCESS_WRITE:
case KCSAN_ACCESS_SCOPED | KCSAN_ACCESS_WRITE | KCSAN_ACCESS_ATOMIC:
case KCSAN_ACCESS_SCOPED | KCSAN_ACCESS_COMPOUND | KCSAN_ACCESS_WRITE:
case KCSAN_ACCESS_SCOPED | KCSAN_ACCESS_COMPOUND | KCSAN_ACCESS_WRITE | KCSAN_ACCESS_ATOMIC:
.ip = (access_type & KCSAN_ACCESS_SCOPED) ? ip : 0,
reorder_access->type = (access_type) | KCSAN_ACCESS_SCOPED; \
KCSAN_ACCESS_SCOPED | KCSAN_ACCESS_WRITE | KCSAN_ACCESS_ASSERT,