1# Copyright 2011-2024 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# This file is part of the gdb testsuite 17 18# Test casting, especially between class types or pointer-to-class 19# types. 20 21# This file is part of the gdb testsuite 22 23# 24# test running programs 25# 26require allow_cplus_tests 27 28standard_testfile .cc 29 30if {[build_executable_from_specs $testfile.exp $testfile \ 31 {c++ ldflags=-Wl,--gc-sections} \ 32 $srcfile {debug c++ additional_flags=-ffunction-sections}]} { 33 untested "failed to compile" 34 return -1 35} 36 37clean_restart $testfile 38 39proc set_breakpoint_on_gcd_function {} { 40 # Single hex digit 41 set xd {[0-9a-f]} 42 43 # This accepts e.g. "Breakpoint 1 at 0x40968a" (fixed GDB) 44 # but rejects e.g. "Breakpoint 1 at 0x4" (broken GDB). 45 gdb_test "b [gdb_get_line_number "gdb break here"]" \ 46 "Breakpoint \[0-9\] at 0x${xd}${xd}+: .*" 47} 48 49set_breakpoint_on_gcd_function 50 51save_vars { GDBFLAGS } { 52 set GDBFLAGS "$GDBFLAGS --readnow" 53 clean_restart ${testfile} 54} 55 56with_test_prefix "readnow" { 57 set_breakpoint_on_gcd_function 58} 59