3 ms·
Plain C version with attribute((__cleanup)): int* foo(int bar) { int* return_value = NULL; __cleanup__((cleanup_1)) int c1 = 0; if
by innagadadavida 4y ago
Plain C version with attribute((__cleanup)):
int* foo(int bar) {
int* return_value = NULL;
__cleanup__((cleanup_1)) int c1 = 0;
if (!do_something(bar))
return NULL;
__cleanup__((cleanup_2)) int c2 = 0;
if (!init_stuff(bar))
return NULL;
__cleanup__((cleanup_3)) int c3 = 0;
if (!prepare_stuff(bar))
return NULL;
return_value = do_the_thing(bar);
return return_value;
}
- hgsgm 4y agoThat's GCC, not standard C, right?
- innagadadavida 4y agoClang works too. Not sure about the rest.