Commit | Line | Data |
---|---|---|
3666a048 | 1 | # Copyright 1997-2021 Free Software Foundation, Inc. |
c906108c SS |
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 | |
e22f8b7c | 5 | # the Free Software Foundation; either version 3 of the License, or |
c906108c | 6 | # (at your option) any later version. |
e22f8b7c | 7 | # |
c906108c SS |
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. | |
e22f8b7c | 12 | # |
c906108c | 13 | # You should have received a copy of the GNU General Public License |
e22f8b7c | 14 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
c906108c | 15 | |
c906108c | 16 | |
f8b41b00 | 17 | standard_testfile |
c906108c SS |
18 | |
19 | # Create and source the file that provides information about the compiler | |
20 | # used to compile the test case. | |
4c93b1db | 21 | if [get_compiler_info] { |
ae59b1da | 22 | return -1 |
c906108c SS |
23 | } |
24 | ||
25 | ||
26 | # This test must be compiled with -O2 if using gcc. | |
27 | ||
f8b41b00 | 28 | set options debug |
f6246aba | 29 | if { [test_compiler_info gcc-*-*] } then { |
f8b41b00 | 30 | lappend options additional_flags=-O2 additional_flags=-fno-inline |
c906108c SS |
31 | } |
32 | ||
5b362f04 | 33 | if {[prepare_for_testing "failed to prepare" $testfile $srcfile $options]} { |
f8b41b00 TT |
34 | return -1 |
35 | } | |
c906108c SS |
36 | |
37 | if [runto middle] then { | |
38 | # PR 3016 | |
44097287 FN |
39 | # warning: Hit heuristic-fence-post without finding |
40 | # warning: enclosing function for pc 0x1006ead0 | |
f6246aba | 41 | if { [test_compiler_info gcc-*-*] } then { |
3831839c | 42 | setup_xfail "mips64*-*-elf" |
c906108c | 43 | } |
44097287 FN |
44 | # The call chain is main -> top -> middle. But gcc can optimize a tail |
45 | # call to a jump, so the stack may contain either main -> top -> middle | |
46 | # or main -> middle. | |
47 | gdb_test "backtrace" "#0.*middle.*#\[12\].*main.*" | |
c906108c SS |
48 | } |
49 | return 0 |