OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gdb-7.2/] [gdb-7.2-or32-1.0rc1/] [gdb/] [testsuite/] [gdb.base/] [return-nodebug.exp] - Blame information for rev 341

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 330 jeremybenn
# Copyright (C) 2009, 2010 Free Software Foundation, Inc.
2
 
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.
7
#
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.
12
#
13
# You should have received a copy of the GNU General Public License
14
# along with this program.  If not, see .
15
 
16
proc do_test {type} {
17
    set typenospace [string map {{ } -} $type]
18
 
19
    global pf_prefix
20
    set old_prefix $pf_prefix
21
    lappend pf_prefix "$typenospace:"
22
 
23
    if {[runto "func"]} {
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'.
27
 
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"
31
 
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"
36
 
37
        gdb_test "advance marker" "marker \\(.*" \
38
                 "advance to marker"
39
 
40
        # And if it returned the full width of the result.
41
        gdb_test "print /d t" " = -1" "full width of the returned result"
42
    }
43
 
44
    set pf_prefix $old_prefix
45
}
46
 
47
foreach type {{signed char} {short} {int} {long} {long long}} {
48
    set typeesc [string map {{ } {\ }} $type]
49
    set typenospace [string map {{ } -} $type]
50
 
51
    set testfile "return-nodebug"
52
    set srcfile ${testfile}.c
53
    set srcfile1 ${testfile}1.c
54
    set binfile ${objdir}/${subdir}/${testfile}-${typenospace}
55
 
56
    set additional_flags "additional_flags=-DTYPE=$typeesc"
57
 
58
    if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}0.o" object [list debug $additional_flags]] != "" } {
59
        continue
60
    }
61
 
62
    # This one is compiled without debug info.
63
    if { [gdb_compile "${srcdir}/${subdir}/${srcfile1}" "${binfile}1.o" object [list $additional_flags]] != "" } {
64
        continue
65
    }
66
 
67
    if { [gdb_compile "${binfile}0.o ${binfile}1.o" "${binfile}" executable {debug}] != "" } {
68
        continue
69
    }
70
 
71
    gdb_exit
72
    gdb_start
73
    gdb_reinitialize_dir $srcdir/$subdir
74
    gdb_load ${binfile}
75
 
76
    do_test $type
77
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.