testsuite: introduce index in varobj child eval.
authorKeven Boell <keven.boell@intel.com>
Thu, 21 Nov 2013 09:54:47 +0000 (10:54 +0100)
committerKeven Boell <keven.boell@intel.com>
Fri, 6 Dec 2013 09:02:16 +0000 (10:02 +0100)
In some languages, e.g. fortran, arrays start with index 1
instead 0. This patch changes the MI library to support testing
varobj children of fortran arrays.

2013-11-21  Keven Boell  <keven.boell@intel.com>

testsuite/

* lib/mi-support.exp (mi_list_varobj_children_range): Add
call to mi_list_array_varobj_children_with_index.
(mi_list_array_varobj_children_with_index): New function.
Add parameter to specify array start.

gdb/testsuite/ChangeLog
gdb/testsuite/lib/mi-support.exp

index 070ea72..7c47870 100644 (file)
@@ -1,3 +1,10 @@
+2013-12-06  Keven Boell  <keven.boell@intel.com>
+
+       * lib/mi-support.exp (mi_list_varobj_children_range): Add
+       call to mi_list_array_varobj_children_with_index.
+       (mi_list_array_varobj_children_with_index): New function.
+       Add parameter to specify array start.
+
 2013-12-03  Jose E. Marchesi  <jose.marchesi@oracle.com>
 
        * gdb.base/sigall.exp (test_one_sig): gdb identifies SIGLOST as a
index 0c3cdbe..cb7bf90 100644 (file)
@@ -1487,9 +1487,18 @@ proc mi_list_varobj_children_range {varname from to numchildren children testnam
 # Verifies that variable object VARNAME has NUMBER children,
 # where each one is named $VARNAME.<index-of-child> and has type TYPE.
 proc mi_list_array_varobj_children { varname number type testname } {
+    mi_list_array_varobj_children_with_index $varname $number 0 $type $testname
+}
+
+# Same as mi_list_array_varobj_children, but allowing to pass a start index
+# for an array.
+proc mi_list_array_varobj_children_with_index { varname number start_index \
+  type testname } {
     set t {}
+    set index $start_index
     for {set i 0} {$i < $number} {incr i} {
-       lappend t [list $varname.$i $i 0 $type]
+       lappend t [list $varname.$index $index 0 $type]
+       incr index
     }
     mi_list_varobj_children $varname $t $testname
 }