>>106920376
you can do
int rc = 0;

if(!rc){
rc = func();
}

if(!rc){
rc = func2();
}

...

//cleanup

return rc;

it's readable, just less readable than goto.