Like the C stackalign tests, the tests in g++.dg/torture/stackalign use two sets of torture options: the usual optimization sets used as default for torture tests, and sets of options that are specific to stack alignment. There are fewer stack alignment options used for the G++ tests but otherwise the setup is the same.
This patch is similar to the one for the C stackalign tests and uses existing support to combine the torture options and stackalign options so they are all reported in the pass/fail lines in the test summary to make each line unique. Since this isn't significantly different from the patch for C tests I'm not waiting for a review. Tested on i686-pc-linux-gnu and arm-none-eabi, checked in. Janis
2012-06-15 Janis Johnson <jani...@codesourcery.com> * g++.dg/torture/stackalign/stackalign.exp: Combine stack alignment torture options with usual torture options. Index: g++.dg/torture/stackalign/stackalign.exp =================================================================== --- g++.dg/torture/stackalign/stackalign.exp (revision 188540) +++ g++.dg/torture/stackalign/stackalign.exp (working copy) @@ -1,4 +1,4 @@ -# Copyright (C) 2008, 2010 +# Copyright (C) 2008, 2010, 2012 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -18,18 +18,41 @@ # This harness is for tests that should be run at all optimisation levels. load_lib g++-dg.exp +load_lib torture-options.exp + +global DG_TORTURE_OPTIONS LTO_TORTURE_OPTIONS + dg-init -set additional_flags "" +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 automatic stack alignment is supported, force it on. if { [check_effective_target_automatic_stack_alignment] } then { - lappend additional_flags "-mstackrealign" - lappend additional_flags "-mpreferred-stack-boundary=5" + append default_flags " -mstackrealign" + append default_flags " -mpreferred-stack-boundary=5" } +lappend stackalign_options [join $torture_flags] -gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.C]] $additional_flags if { [check_effective_target_fpic] } then { - lappend additional_flags "-fpic" - gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.C]] $additional_flags + lappend torture_flags "-fpic" + lappend stackalign_options [join $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