1 # Copyright
(C
) 2009 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 set typenospace
[string map
{{ } -} $type
]
20 set old_prefix $pf_prefix
21 lappend pf_prefix
"$typenospace:"
24 # Verify that we
do not crash when using
"return" from a function with
25 # no debugging
info. Such function has no `struct symbol
'. It may
26 # still have an associated `struct minimal_symbol'.
28 gdb_test
"return -1" \
29 "Return value type not available for selected stack frame\\.\r\nPlease use an explicit cast of the value to return\\." \
30 "return from function with no debug info without a cast"
32 # Cast of the result to the proper width must be done explicitely.
33 gdb_test
"return ($type) -1" "#0 .* main \\(.*" \
34 "return from function with no debug info with a cast" \
35 "Make selected stack frame return now\\? \\(y or n\\) " "y"
37 gdb_test
"advance marker" "marker \\(.*" \
40 # And
if it returned the full width of the result.
41 gdb_test
"print /d t" " = -1" "full width of the returned result"
44 set pf_prefix $old_prefix
47 foreach type
{{signed char
} {short
} {int} {long
} {long long
}} {
48 set typeesc
[string map
{{ } {\
}} $type
]
49 set typenospace
[string map
{{ } -} $type
]
51 set testfile
"return-nodebug"
52 set srcfile $
{testfile
}.c
53 set srcfile1 $
{testfile
}1.c
54 set binfile $
{objdir
}/$
{subdir
}/$
{testfile
}-$
{typenospace
}
56 set additional_flags
"additional_flags=-DTYPE=$typeesc"
58 if { [gdb_compile
"${srcdir}/${subdir}/${srcfile}" "${binfile}0.o" object [list debug $additional_flags]] != "" } {
62 # This one is compiled without debug
info.
63 if { [gdb_compile
"${srcdir}/${subdir}/${srcfile1}" "${binfile}1.o" object [list $additional_flags]] != "" } {
67 if { [gdb_compile
"${binfile}0.o ${binfile}1.o" "${binfile}" executable {debug}] != "" } {
73 gdb_reinitialize_dir $srcdir
/$subdir