| Index: gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec.exp
|
| diff --git a/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec.exp b/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec.exp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..cf711136505f702b6d55e8c19b9b9ad089acd8d2
|
| --- /dev/null
|
| +++ b/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec.exp
|
| @@ -0,0 +1,84 @@
|
| +# Copyright 2012-2013 Free Software Foundation, Inc.
|
| +#
|
| +# This program is free software; you can redistribute it and/or modify
|
| +# it under the terms of the GNU General Public License as published by
|
| +# the Free Software Foundation; either version 3 of the License, or
|
| +# (at your option) any later version.
|
| +#
|
| +# This program is distributed in the hope that it will be useful,
|
| +# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| +# GNU General Public License for more details.
|
| +#
|
| +# You should have received a copy of the GNU General Public License
|
| +# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
| +
|
| +load_lib "ada.exp"
|
| +
|
| +standard_ada_testfile foo
|
| +
|
| +if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" } {
|
| + return -1
|
| +}
|
| +
|
| +clean_restart ${testfile}
|
| +
|
| +set bp_location [gdb_get_line_number "STOP1" ${testdir}/foo.adb]
|
| +runto "foo.adb:$bp_location"
|
| +
|
| +# Print My_Object and My_Object.Ptr when Ptr is null...
|
| +
|
| +gdb_test "print my_object" \
|
| + "= \\(n => 3, ptr => 0x0, data => \\(3, 5, 8\\)\\)" \
|
| + "print My_Object with null Ptr"
|
| +
|
| +gdb_test "print my_object.ptr" \
|
| + "= \\(foo.table_access\\) 0x0" \
|
| + "print My_Object.Ptr when null"
|
| +
|
| +# Same for My_P_Object...
|
| +
|
| +gdb_test "print my_p_object" \
|
| + "= \\(n => 3, ptr => 0x0, data => \\(3, 5, 8\\)\\)" \
|
| + "print My_P_Object with null Ptr"
|
| +
|
| +gdb_test "print my_p_object.ptr" \
|
| + "\\(foo.p_table_access\\) 0x0" \
|
| + "print My_P_Object.Ptr when null"
|
| +
|
| +# Continue until the Ptr component of both objects get allocated.
|
| +
|
| +set bp_location [gdb_get_line_number "STOP2" ${testdir}/foo.adb]
|
| +
|
| +gdb_breakpoint "foo.adb:$bp_location"
|
| +
|
| +gdb_test "continue" \
|
| + "Breakpoint $decimal, foo \\(\\) at .*foo.adb:$decimal.*" \
|
| + "continue to STOP2"
|
| +
|
| +# Inspect My_Object again...
|
| +
|
| +gdb_test "print my_object" \
|
| + "= \\(n => 3, ptr => $hex, data => \\(3, 5, 8\\)\\)" \
|
| + "print my_object after setting Ptr"
|
| +
|
| +gdb_test "print my_object.ptr" \
|
| + "\\(foo.table_access\\) $hex" \
|
| + "print My_P_Object.Ptr when no longer null"
|
| +
|
| +gdb_test "print my_object.ptr.all" \
|
| + "= \\(13, 21, 34\\)"
|
| +
|
| +# Same with My_P_Object...
|
| +
|
| +gdb_test "print my_p_object" \
|
| + "= \\(n => 3, ptr => $hex, data => \\(3, 5, 8\\)\\)" \
|
| + "print my_p_object after setting Ptr"
|
| +
|
| +gdb_test "print my_p_object.ptr" \
|
| + "= \\(foo.p_table_access\\) $hex" \
|
| + "print My_P_Object.Ptr when no longer null"
|
| +
|
| +gdb_test "print my_p_object.ptr.all" \
|
| + "\\(13, 21, 34\\)"
|
| +
|
|
|