[binutils-gdb] [gdb/testsuite, Tcl 9.0] Fix error: invalid character in array index
Tom de Vries via Gdb-cvs <[email protected]>
| Newsgroups | gmane.comp.gdb.cvs |
|---|---|
| Message-ID | <[email protected]> |
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=30e4e0e2075f701006c142b8d8e7d0cfa9dd5511 commit 30e4e0e2075f701006c142b8d8e7d0cfa9dd5511 Author: Tom de Vries <[email protected]> Date: Fri Mar 20 10:13:27 2026 +0100 [gdb/testsuite, Tcl 9.0] Fix error: invalid character in array index With test-case gdb.cp/inherit.exp and Tcl 9.0, I run into: ... ERROR: tcl error sourcing gdb.cp/inherit.exp. ERROR: tcl error code NONE ERROR: invalid character in array index while executing "set in_class_table $cp_class_table_history(" invoked from within "if {$in_class_table == "ibid"} { if {![info exists cp_class_table_history("$in_key,$in_tag")]} { ... Fix this by dropping the double quotes in 'cp_class_table_history("$in_key,$in_tag")'. Likewise in gdb.cp/ovldbreak.exp. Approved-By: Tom Tromey <[email protected]> Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=33948 Diff: --- gdb/testsuite/gdb.cp/ovldbreak.exp | 8 ++++---- gdb/testsuite/lib/cp-support.exp | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/gdb/testsuite/gdb.cp/ovldbreak.exp b/gdb/testsuite/gdb.cp/ovldbreak.exp index 2b647170415..a4e853e2986 100644 --- a/gdb/testsuite/gdb.cp/ovldbreak.exp +++ b/gdb/testsuite/gdb.cp/ovldbreak.exp @@ -196,7 +196,7 @@ foreach type $all_types { # Create an inverse mapping of the actual type to # the synthetic type. - set type_map("$types($type)") $type + set type_map($types($type)) $type pass "detect $type" } } @@ -237,7 +237,7 @@ set method "foo::overload1arg" for {set idx 0} {$idx < [llength $overloads]} {incr idx} { set type [lindex $overloads $idx] set_bp_overloaded $method $menu_overload1arg \ - [expr {$idx + 2}] [incr bpnum] $line($type_map("$type")) + [expr {$idx + 2}] [incr bpnum] $line($type_map($type)) } # Verify the breakpoints. @@ -246,7 +246,7 @@ append bptable "${::decimal}\[\t \]+breakpoint\[\t \]+keep\[\t \]y\[\t \]+$hex\[ append bptable "\[\t \]+breakpoint already hit 1 time" foreach ovld $overloads { append bptable [format "\r\n${::decimal}\[\t \]+breakpoint\[\t \]+keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(%s\\) at.*$srcfile:%d" $ovld \ - $line($type_map("$ovld"))] + $line($type_map($ovld))] } gdb_test "info break" $bptable "breakpoint info, after setting one-by-one" @@ -298,7 +298,7 @@ with_test_prefix "multiple breakpoints" { set expected_lines {} for {set i 0} {$i < 2} {incr i} { set type [lindex $overloads $i] - lappend expected_lines $line($type_map("$type")) + lappend expected_lines $line($type_map($type)) } set_bp_overloaded $method $menu_overload1arg \ "2-3" [incr bpnum] $expected_lines diff --git a/gdb/testsuite/lib/cp-support.exp b/gdb/testsuite/lib/cp-support.exp index cf26406260d..0bc71cd5822 100644 --- a/gdb/testsuite/lib/cp-support.exp +++ b/gdb/testsuite/lib/cp-support.exp @@ -261,13 +261,13 @@ proc cp_test_ptype_class { in_exp in_testname in_key in_tag in_class_table global cp_class_table_history if {$in_class_table == "ibid"} { - if {![info exists cp_class_table_history("$in_key,$in_tag")]} { + if {![info exists cp_class_table_history($in_key,$in_tag)]} { fail "$in_testname // bad ibid" return false } - set in_class_table $cp_class_table_history("$in_key,$in_tag") + set in_class_table $cp_class_table_history($in_key,$in_tag) } else { - set cp_class_table_history("$in_key,$in_tag") $in_class_table + set cp_class_table_history($in_key,$in_tag) $in_class_table } # Split the class table into separate tables.