1 # Copyright
(C
) 2009-2019 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 set skip_float_test
[gdb_skip_float_test
]
19 set typenospace
[string map
{{ } -} $type
]
21 with_test_prefix
"$typenospace" {
23 # Verify that we
do not crash when using
"return" from a
24 # function with no debugging
info. Such function has no
25 # `struct symbol
'. It may still have an associated
26 # `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"
46 foreach type
{{signed char
} {short
} {int} {long
} {long long
} {float
} {double
}} {
47 if { $skip_float_test
&& ($type
== "float" || $type == "double") } {
50 set typeesc
[string map
{{ } {\
}} $type
]
51 set typenospace
[string map
{{ } -} $type
]
53 standard_testfile .c
return-nodebug1.c
55 set additional_flags
"additional_flags=-DTYPE=$typeesc"
57 if {[prepare_for_testing_full
"failed to prepare" \
58 [list $
{testfile
}-$
{typenospace
} debug \
59 $srcfile
[list debug $additional_flags
] \
60 $srcfile2
[list $additional_flags
]]]} {