1 # Copyright
2000-2022 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
/>.
16 # This file was written by Michael Snyder
(msnyder@redhat.com
)
21 if { [gdb_compile
"${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
22 untested
"failed to compile"
26 set skip_float_test
[gdb_skip_float_test
]
28 proc return_1
{ type
} {
31 gdb_test
"break ${type}_func" "Breakpoint \[0123456789\].*" \
32 "set break on ${type}_func"
33 gdb_test
"continue" "Breakpoint.* ${type}_func.*" \
34 "continue to ${type}_func"
36 gdb_test_multiple
"return testval.${type}_testval" \
37 "return from ${type}_func" {
38 -re
"Make ${type}_func return now.*y or n. $" {
42 -re
".*${type}_resultval *= ${type}_func.*$gdb_prompt $" {
46 -re
".*${type}_checkpoint.*$gdb_prompt $" {
47 pass
"return from ${type}_func"
50 gdb_test
"print ${type}_resultval == testval.${type}_testval" ".* = 1" \
51 "${type} value returned successfully"
52 gdb_test
"print ${type}_resultval != ${type}_returnval" ".* = 1" \
53 "validate result value not equal to program return value, ${type}"
56 proc return_void
{ } {
59 gdb_test
"break void_func" "Breakpoint \[0123456789\].*" \
60 "set break on void_func"
61 gdb_test
"continue" "Breakpoint.* void_func.*" \
62 "continue to void_func"
64 gdb_test_multiple
"return" "return from void_func" {
65 -re
"Make void_func return now.*y or n. $" {
69 -re
".*void_func.*call to void_func.*$gdb_prompt $" {
73 -re
".*void_checkpoint.*$gdb_prompt $" {
74 pass
"return from void_func"
77 gdb_test
"print void_test == 0" ".* = 1" \
78 "void function returned successfully"
81 proc return2_tests
{ } {
82 global gdb_prompt skip_float_test
84 if { ! [ runto_main
] } then {
93 if { ! [istarget
"m6811-*-*"] && ![istarget "h8300*-*"] } then {
96 if {!$skip_float_test
} {
98 if { ! [istarget
"m6811-*-*"] } then {
104 # Start with a fresh gdb.
106 clean_restart $
{binfile
}