1 # Copyright
(C
) 2009-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
/>.
16 set allow_float_test
[allow_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 if {$type
== "float" || $type == "double"} {
46 gdb_test
"print $flag t" " = -1" "full width of the returned result"
51 foreach type
{{signed char
} {short
} {int} {long
} {long long
} {float
} {double
}} {
52 if { !$allow_float_test
&& ($type
== "float" || $type == "double") } {
55 set typenospace_dash \
56 [string map
{{ } -} $type
]
57 set typenospace_underscore \
58 [string map
{{ } _
} $type
]
60 standard_testfile .c
return-nodebug1.c
62 set additional_flags
{}
63 lappend additional_flags \
64 additional_flags
=-DTYPE_NOSPACE
=$typenospace_underscore
65 lappend additional_flags \
66 additional_flags
=-DTYPE_NOSPACE_$typenospace_underscore
68 if {[prepare_for_testing_full
"failed to prepare" \
69 [list $
{testfile
}-$
{typenospace_dash
} debug \
70 $srcfile
[concat
{debug
} $additional_flags
] \
71 $srcfile2 $additional_flags
]]} {