From: Tom de Vries Date: Tue, 24 Sep 2024 11:57:55 +0000 (+0200) Subject: [gdb] Eliminate catch(...) in pipe_command X-Git-Tag: gdb-16-branchpoint~828 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=58706ec737824257593cd5d1c1a4205302054209;p=thirdparty%2Fbinutils-gdb.git [gdb] Eliminate catch(...) in pipe_command Remove duplicate code in pipe_command using SCOPE_EXIT. Tested on aarch64-linux. Approved-By: Tom Tromey --- diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c index fd8e27735f0..8879d13c974 100644 --- a/gdb/cli/cli-cmds.c +++ b/gdb/cli/cli-cmds.c @@ -1118,19 +1118,14 @@ pipe_command (const char *arg, int from_tty) if (to_shell_command == nullptr) error (_("Error launching \"%s\""), shell_command); - try - { - stdio_file pipe_file (to_shell_command); + int exit_status; + { + SCOPE_EXIT { exit_status = pclose (to_shell_command); }; - execute_command_to_ui_file (&pipe_file, gdb_cmd.c_str (), from_tty); - } - catch (...) - { - pclose (to_shell_command); - throw; - } + stdio_file pipe_file (to_shell_command); - int exit_status = pclose (to_shell_command); + execute_command_to_ui_file (&pipe_file, gdb_cmd.c_str (), from_tty); + } if (exit_status < 0) error (_("shell command \"%s\" failed: %s"), shell_command,