__cleanup
char *buf __cleanup(kfree) = kmalloc(SZ_4K, GFP_NOWAIT);
struct ixgbe_aci_event event __cleanup(ixgbe_aci_event_cleanup);
struct pinned_mountpoint mp __cleanup(unlock_mount) = {}; \
struct pinned_mountpoint mp __cleanup(unlock_mount) = {}; \
struct pinned_mountpoint mp __cleanup(unlock_mount) = {}; \
#define __free(_name) __cleanup(__free_##_name)
class_##_name##_t var __cleanup(class_##_name##_destructor) = \
class_##_name##_t _var __cleanup(class_##_name##_destructor) = (_init_expr)
*__UNIQUE_ID(unlock) __cleanup(__class_##_name##_cleanup_ctx) = (void *)(unsigned long)(_T)
for (struct ss_tmp _s __cleanup(__scoped_seqlock_cleanup) = \
*__UNIQUE_ID(ctx) __cleanup(__scoped_seqlock_cleanup_ctx) =\
for (const auto uptr __cleanup(__scoped_user_##mode##_access_end) = \
*__UNIQUE_ID(unlock1) __cleanup(__class_##_name##_cleanup_ctx1) = (void *)(_T1),\
*__UNIQUE_ID(unlock2) __cleanup(__class_##_name##_cleanup_ctx2) = (void *)(_T2)
int __cleanup(unindent) __dummy_##__COUNTER__; \