1 # Copyright
2006-2024 Free Software Foundation
, Inc.
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.
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.
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
/>.
17 require allow_cplus_tests
19 standard_testfile .cc
call-c
-1.c
20 set objfilec
[standard_output_file $
{testfile
}-1.o
]
21 set objfilecpp
[standard_output_file $
{testfile
}.o
]
23 if {[gdb_compile
"$srcdir/$subdir/${srcfile2}" "${objfilec}" object {debug}] != ""
24 ||
[gdb_compile
"$srcdir/$subdir/${srcfile}" "${objfilecpp}" object {c++ debug}] != ""
25 ||
[gdb_compile
"${objfilecpp} ${objfilec}" "${binfile}" executable {c++ debug}] != ""} {
26 untested
"failed to compile"
30 clean_restart $
{binfile
}
34 gdb_test
"b [gdb_get_line_number {breakpoint here} ${testfile}.cc ]" \
35 ".*Breakpoint .*call-c.*"
37 gdb_test
"print foo(1)" "\\\$$decimal = 1"
38 gdb_test
"continue" ".*breakpoint here.*" "continue to bp"
39 gdb_test
"print rf->func()" "\\\$$decimal = 1"
41 gdb_test
"print sum_vararg_int(0)" "0"
42 gdb_test
"print sum_vararg_int(1, 10)" "10"
43 gdb_test
"print sum_vararg_int(2, 20, 30)" "50"
44 gdb_test
"print sum_vararg_int(5, 20, 30, 40, 50, 60)" "200"
46 gdb_test
"print vararg_func(1)" "1"
47 gdb_test
"print vararg_func(2, 3)" "2"
48 gdb_test
"print vararg_func(4, 5.5)" "2"
49 gdb_test
"print vararg_func(6, \"7\")" "1"
50 gdb_test
"print vararg_func(8, 9, 10)" "2"
51 gdb_test
"print vararg_func(11, 12, 13.5)" "2"
52 gdb_test
"print vararg_func(14, 15, \"16\")" "2"
54 # Regression test
for method
call via a typedef.
55 gdb_test
"print handle->func()" "\\\$$decimal = 1"