1# Copyright 2006, 2007, 2008, 2009, 2010, 2011 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 16if $tracelevel then { 17 strace $tracelevel 18} 19 20 21if { [skip_cplus_tests] } { continue } 22 23set testfile call-c 24set binfile ${objdir}/${subdir}/${testfile} 25set srcfilec ${srcdir}/${subdir}/${testfile}-1.c 26set srcfilecpp ${srcdir}/${subdir}/${testfile}.cc 27set objfilec ${objdir}/${subdir}/${testfile}-1.o 28set objfilecpp ${objdir}/${subdir}/${testfile}.o 29 30if {[gdb_compile "${srcfilec}" "${objfilec}" object {debug}] != "" 31 || [gdb_compile "${srcfilecpp}" "${objfilecpp}" object {c++ debug}] != "" 32 || [gdb_compile "${objfilecpp} ${objfilec}" "${binfile}" executable {c++ debug}] != ""} { 33 untested hang.exp 34 return -1 35} 36 37gdb_exit 38gdb_start 39gdb_reinitialize_dir $srcdir/$subdir 40gdb_load ${binfile} 41 42runto_main 43 44gdb_test "b [gdb_get_line_number {breakpoint here} ${testfile}.cc ]" \ 45 ".*Breakpoint .*call-c.*" 46 47gdb_test "print foo(1)" "\\\$$decimal = 1" 48gdb_test "continue" ".*breakpoint here.*" "continue to bp" 49gdb_test "print rf->func()" "\\\$$decimal = 1" 50 51# Regression test for method call via a typedef. 52gdb_test "print handle->func()" "\\\$$decimal = 1" 53