#[extern("vm")] fn vm_printf(fmt: *u8, ...) void; fn with_cleanup() void { defer vm_printf("cleanup\n"); } fn main() void { defer vm_printf("defer1\n"); with_cleanup(); defer vm_printf("defer2\n"); for 0..2 as i { defer vm_printf("defer for before\n", i); vm_printf("%d", i); defer vm_printf("defer for after\n", i); } ret; }