int Function ( void ) { int Err ; Err = operate1 ( ptr1 , "Skull" ); if ( Err ) GOTO fail_this ; Err = operate2( ptr2 , "Skull" ); if ( Err ) GOTO fail_that ; Err = operate3 ( ptr3 , "Skull" ); if ( Err ) GOTO fail_those; return 0 ; fail_those : unregister_that ( ptr2 , "Skull" ); fail_that : unregister_this ( ptr1 , "Skull" ); fail_this : return Err ; }