Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp Fri Oct 27 22:46:09 2017 +0900 @@ -0,0 +1,69 @@ +# Copyright (C) 2008-2017 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# <http://www.gnu.org/licenses/>. + +# This harness is for tests that should be run at all optimisation levels. + +load_lib gcc-dg.exp +load_lib torture-options.exp + +global DG_TORTURE_OPTIONS LTO_TORTURE_OPTIONS + +dg-init +torture-init + +# default_flags are replaced by a dg-options test directive, or appended +# to by using dg-additional-options. Use default_flags for options that +# are used in all of the torture sets to limit the amount of noise in +# test summaries. +set default_flags "" + +# torture_flags are combined with other torture options and do not +# affect options specified within a test. +set torture_flags "" + +set stackalign_options [list] +if { [check_effective_target_automatic_stack_alignment] } then { + append default_flags " -mstackrealign" + append default_flags " -mpreferred-stack-boundary=5" +} +if { [istarget i?86*-*-*] || [istarget x86_64-*-*] } then { + append default_flags " -mno-mmx" +} +lappend stackalign_options [join $torture_flags] + +if { [check_effective_target_fpic] } then { + set pic_torture_flags $torture_flags + append pic_torture_flags " -fpic" + lappend stackalign_options [join $pic_torture_flags] +} + +if { [check_effective_target_automatic_stack_alignment] } then { + append torture_flags " -mforce-drap" + lappend stackalign_options [join $torture_flags] + if { [check_effective_target_fpic] } then { + set pic_torture_flags $torture_flags + append pic_torture_flags " -fpic" + lappend stackalign_options [join $pic_torture_flags] + } +} + +# Combine stackalign options with the usual torture optimization flags. +set-torture-options [concat $DG_TORTURE_OPTIONS $LTO_TORTURE_OPTIONS] $stackalign_options + +gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.c]] "" "$default_flags" + +torture-finish +dg-finish