]>
Commit | Line | Data |
---|---|---|
818ab71a | 1 | # Copyright (C) 2008-2016 Free Software Foundation, Inc. |
3b2488ca L |
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 GCC; see the file COPYING3. If not see | |
15 | # <http://www.gnu.org/licenses/>. | |
16 | ||
17 | # This harness is for tests that should be run at all optimisation levels. | |
18 | ||
19 | load_lib gcc-dg.exp | |
b29e01b7 | 20 | load_lib torture-options.exp |
3b2488ca | 21 | |
b29e01b7 JJ |
22 | global DG_TORTURE_OPTIONS LTO_TORTURE_OPTIONS |
23 | ||
24 | dg-init | |
25 | torture-init | |
26 | ||
27 | # default_flags are replaced by a dg-options test directive, or appended | |
28 | # to by using dg-additional-options. Use default_flags for options that | |
29 | # are used in all of the torture sets to limit the amount of noise in | |
30 | # test summaries. | |
31 | set default_flags "" | |
32 | ||
33 | # torture_flags are combined with other torture options and do not | |
34 | # affect options specified within a test. | |
35 | set torture_flags "" | |
36 | ||
37 | set stackalign_options [list] | |
cc825d98 | 38 | if { [check_effective_target_automatic_stack_alignment] } then { |
b29e01b7 JJ |
39 | append default_flags " -mstackrealign" |
40 | append default_flags " -mpreferred-stack-boundary=5" | |
cc825d98 RH |
41 | } |
42 | if { [istarget i?86*-*-*] || [istarget x86_64-*-*] } then { | |
b29e01b7 | 43 | append default_flags " -mno-mmx" |
3b2488ca | 44 | } |
b29e01b7 | 45 | lappend stackalign_options [join $torture_flags] |
3b2488ca | 46 | |
3b2488ca | 47 | if { [check_effective_target_fpic] } then { |
b29e01b7 JJ |
48 | set pic_torture_flags $torture_flags |
49 | append pic_torture_flags " -fpic" | |
50 | lappend stackalign_options [join $pic_torture_flags] | |
3b2488ca L |
51 | } |
52 | ||
cc825d98 | 53 | if { [check_effective_target_automatic_stack_alignment] } then { |
b29e01b7 JJ |
54 | append torture_flags " -mforce-drap" |
55 | lappend stackalign_options [join $torture_flags] | |
3b2488ca | 56 | if { [check_effective_target_fpic] } then { |
b29e01b7 JJ |
57 | set pic_torture_flags $torture_flags |
58 | append pic_torture_flags " -fpic" | |
59 | lappend stackalign_options [join $pic_torture_flags] | |
3b2488ca L |
60 | } |
61 | } | |
62 | ||
b29e01b7 JJ |
63 | # Combine stackalign options with the usual torture optimization flags. |
64 | set-torture-options [concat $DG_TORTURE_OPTIONS $LTO_TORTURE_OPTIONS] $stackalign_options | |
65 | ||
a03bd005 | 66 | gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.c]] "" "$default_flags" |
b29e01b7 JJ |
67 | |
68 | torture-finish | |
3b2488ca | 69 | dg-finish |