Fix coredump-filter.exp by correctly unsetting array
authorSergio Durigan Junior <sergiodj@redhat.com>
Fri, 8 May 2015 17:19:19 +0000 (13:19 -0400)
committerSergio Durigan Junior <sergiodj@redhat.com>
Fri, 8 May 2015 17:19:19 +0000 (13:19 -0400)
In my last commit to make gdb.base/coredump-filter.exp be more robust
regarding using arrays in the global namespace, I cleared the
"coredump_var_addr" array like this:

  set coredump_var_addr ""
  # use coredump_var_addr as an array...

This causes DejaGNU to complain because the variable is first set as
non-array, and the used as an array.  The correct way to do this is to
unset the variable using:

  unset -nocomplain coredump_var_addr
  # use coredump_var_addr as an array...

The "-nocomplain" part is necessary because if the variable doesn't
exist "unset" will not error.

Tested on Fedora 20 x86_64.

gdb/testsuite/ChangeLog:
2015-05-08  Sergio Durigan Junior  <sergiodj@redhat.com>

* gdb.base/coredump-filter.exp: Correctly unset
"coredump_var_addr" array.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/coredump-filter.exp

index 4064b28..f4ee04a 100644 (file)
@@ -1,3 +1,8 @@
+2015-05-08  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+       * gdb.base/coredump-filter.exp: Correctly unset
+       "coredump_var_addr" array.
+
 2015-05-08  Pedro Alves  <palves@redhat.com>
 
        * gdb.server/non-existing-program.exp: Unset spawn_id.
index 8638ab0..81f5d42 100644 (file)
@@ -167,7 +167,7 @@ gdb_test_multiple "print/x &main" "getting main's address" {
 
 # Obtain the address of each variable that will be checked on each
 # case.
-set coredump_var_addr ""
+unset -nocomplain coredump_var_addr
 foreach item $all_anon_corefiles {
     foreach name [list [lindex $item 3] [lindex $item 4]] {
        set test "print/x $name"