# Copyright 2006-2024 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 . require allow_cplus_tests standard_testfile .cc call-c-1.c set objfilec [standard_output_file ${testfile}-1.o] set objfilecpp [standard_output_file ${testfile}.o] if {[gdb_compile "$srcdir/$subdir/${srcfile2}" "${objfilec}" object {debug}] != "" || [gdb_compile "$srcdir/$subdir/${srcfile}" "${objfilecpp}" object {c++ debug}] != "" || [gdb_compile "${objfilecpp} ${objfilec}" "${binfile}" executable {c++ debug}] != ""} { untested "failed to compile" return -1 } clean_restart ${binfile} runto_main gdb_test "b [gdb_get_line_number {breakpoint here} ${testfile}.cc ]" \ ".*Breakpoint .*call-c.*" gdb_test "print foo(1)" "\\\$$decimal = 1" gdb_test "continue" ".*breakpoint here.*" "continue to bp" gdb_test "print rf->func()" "\\\$$decimal = 1" gdb_test "print sum_vararg_int(0)" "0" gdb_test "print sum_vararg_int(1, 10)" "10" gdb_test "print sum_vararg_int(2, 20, 30)" "50" gdb_test "print sum_vararg_int(5, 20, 30, 40, 50, 60)" "200" gdb_test "print vararg_func(1)" "1" gdb_test "print vararg_func(2, 3)" "2" gdb_test "print vararg_func(4, 5.5)" "2" gdb_test "print vararg_func(6, \"7\")" "1" gdb_test "print vararg_func(8, 9, 10)" "2" gdb_test "print vararg_func(11, 12, 13.5)" "2" gdb_test "print vararg_func(14, 15, \"16\")" "2" # Regression test for method call via a typedef. gdb_test "print handle->func()" "\\\$$decimal = 1"