BOOL some_func() { BOOL success = FALSE; allocate_temp_resources(); if (might_fail()) { goto Cleanup; } if (might_fail()) { goto Cleanup; } success = TRUE; Cleanup: free_temp_resources(); return success; }