Remove 'eval' from gdb_breakpoint

Message ID 20230222222242.65558-1-tromey@adacore.com
State New
Headers
Series Remove 'eval' from gdb_breakpoint |

Commit Message

Tom Tromey Feb. 22, 2023, 10:22 p.m. UTC
  Now that Tcl has the {*} operator, we can remove the use of eval from
gdb_breakpoint.  Tested on x86-64 Fedora 36.
---
 gdb/testsuite/lib/gdb.exp | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)
  

Comments

Kevin Buettner Feb. 22, 2023, 11:54 p.m. UTC | #1
On Wed, 22 Feb 2023 15:22:42 -0700
Tom Tromey via Gdb-patches <gdb-patches@sourceware.org> wrote:

> Now that Tcl has the {*} operator, we can remove the use of eval from
> gdb_breakpoint.  Tested on x86-64 Fedora 36.

I didn't know about Tcl's {*} operator, but found an explanation here:

https://stackoverflow.com/questions/5124185/what-does-do-in-tcl

Anyway, LGTM.

Kevin
  

Patch

diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 6864dac3ac9..66a5d31d9ad 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -704,12 +704,7 @@  proc runto { linespec args } {
 
     set test_name "runto: run to $linespec"
 
-    # We need to use eval here to pass our varargs args to gdb_breakpoint
-    # which is also a varargs function.
-    # But we also have to be careful because $linespec may have multiple
-    # elements, and we don't want Tcl to move the remaining elements after
-    # the first to $args.  That is why $linespec is wrapped in {}.
-    if ![eval gdb_breakpoint {$linespec} $args] {
+    if {![gdb_breakpoint $linespec {*}$args]} {
 	return 0
     }