1# Copyright 2019-2020 Free Software Foundation, Inc. 2# 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 3 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16# Regression test for a crash that would happen when setting a 17# breakpoint condition that used an array attribute. 18 19load_lib "ada.exp" 20 21if { [skip_ada_tests] } { return -1 } 22 23standard_ada_testfile length_cond 24 25if {[gdb_compile_ada "${srcfile}" "${binfile}" executable debug] != "" } { 26 return -1 27} 28 29clean_restart ${testfile} 30 31set bp_location [gdb_get_line_number "BREAKPOINT" ${testdir}/length_cond.adb] 32gdb_breakpoint length_cond.adb:$bp_location message 33 34# Resolving the conditional expression would cause a crash, so it's 35# enough to just set the conditions. 36 37foreach var {loc enum_val int_val} { 38 foreach attr {first last} { 39 gdb_test_no_output "cond 1 $var'$attr > 15" 40 } 41} 42 43gdb_test_no_output "cond 1 loc'length > 15" 44 45foreach attr {first last length} { 46 foreach val {1 2} { 47 gdb_test_no_output "cond 1 my_array'${attr}($val) > 15" 48 } 49} 50