1# Copyright 1997, 1999, 2000, 2001, 2003, 2007, 2008, 2009, 2010, 2011 2# Free Software Foundation, Inc. 3 4# This program is free software; you can redistribute it and/or modify 5# it under the terms of the GNU General Public License as published by 6# the Free Software Foundation; either version 3 of the License, or 7# (at your option) any later version. 8# 9# This program is distributed in the hope that it will be useful, 10# but WITHOUT ANY WARRANTY; without even the implied warranty of 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12# GNU General Public License for more details. 13# 14# You should have received a copy of the GNU General Public License 15# along with this program. If not, see <http://www.gnu.org/licenses/>. 16 17if $tracelevel then { 18 strace $tracelevel 19} 20 21 22set testfile mips_pro 23set srcfile ${testfile}.c 24set binfile ${objdir}/${subdir}/${testfile} 25 26# Create and source the file that provides information about the compiler 27# used to compile the test case. 28if [get_compiler_info ${binfile}] { 29 return -1; 30} 31 32 33# This test must be compiled with -O2 if using gcc. 34 35if { [test_compiler_info gcc-*-*] } then { 36 if { [gdb_compile "${srcdir}/$subdir/${srcfile}" "${binfile}" \ 37 executable {debug additional_flags=-O2 additional_flags=-fno-inline}] != "" } { 38 untested mips_pro.exp 39 return -1 40 } 41} else { 42 if { [gdb_compile "${srcdir}/$subdir/${srcfile}" "${binfile}" executable {debug}] != "" } { 43 untested mips_pro.exp 44 return -1 45 } 46} 47 48gdb_exit 49gdb_start 50gdb_reinitialize_dir $srcdir/$subdir 51gdb_load ${binfile} 52 53if [runto middle] then { 54 # PR 3016 55 # warning: Hit heuristic-fence-post without finding 56 # warning: enclosing function for pc 0x1006ead0 57 if { [test_compiler_info gcc-*-*] } then { 58 setup_xfail "mips*-sgi-irix4*" "mips64*-*-elf" 59 } 60 # The call chain is main -> top -> middle. But gcc can optimize a tail 61 # call to a jump, so the stack may contain either main -> top -> middle 62 # or main -> middle. 63 gdb_test "backtrace" "#0.*middle.*#\[12\].*main.*" 64} 65return 0 66