diff options
author | Tom de Vries <tdevries@suse.de> | 2018-07-15 16:26:08 +0000 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2018-07-15 16:26:08 +0000 |
commit | 5155feb3f80fdb3c4fcce8349707f14595037da2 (patch) | |
tree | 7909c19f130916953f847c196e07361579d43a08 /gcc | |
parent | 14fa87d6685d8aa00d07ea262bbebfd36c8546c3 (diff) | |
download | gcc-5155feb3f80fdb3c4fcce8349707f14595037da2.zip gcc-5155feb3f80fdb3c4fcce8349707f14595037da2.tar.gz gcc-5155feb3f80fdb3c4fcce8349707f14595037da2.tar.bz2 |
[testsuite/guality] Run guality tests with Og
We advertise Og as the optimization level of choice for the standard
edit-compile-debug cycle, but do not run the guality tests for Og with the
default torture options.
This patch ensures that we test -Og in the guality tests.
F.i., for gcc.dg/guality there are 45 fails for Og (while there are none for
O1), in these test-cases:
...
gcc.dg/guality/pr54200.c
gcc.dg/guality/pr54970.c
gcc.dg/guality/pr56154-1.c
gcc.dg/guality/pr59776.c
gcc.dg/guality/sra-1.c
...
2018-07-15 Tom de Vries <tdevries@suse.de>
* lib/gcc-gdb-test.exp (guality_minimal_options): New proc.
* lib/gfortran-dg.exp (gfortran-dg-runtest): Don't call torture-init if
already called.
* g++.dg/guality/guality.exp: Ensure Og is part of torture options.
* gcc.dg/guality/guality.exp: Same.
* gfortran.dg/guality/guality.exp: Same.
From-SVN: r262668
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/guality/guality.exp | 9 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/guality/guality.exp | 3 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/guality/guality.exp | 7 | ||||
-rw-r--r-- | gcc/testsuite/lib/gcc-gdb-test.exp | 14 | ||||
-rw-r--r-- | gcc/testsuite/lib/gfortran-dg.exp | 18 |
6 files changed, 54 insertions, 6 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b197642..b41f0c0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2018-07-15 Tom de Vries <tdevries@suse.de> + + * lib/gcc-gdb-test.exp (guality_minimal_options): New proc. + * lib/gfortran-dg.exp (gfortran-dg-runtest): Don't call torture-init if + already called. + * g++.dg/guality/guality.exp: Ensure Og is part of torture options. + * gcc.dg/guality/guality.exp: Same. + * gfortran.dg/guality/guality.exp: Same. + 2018-07-13 H.J. Lu <hongjiu.lu@intel.com> Sunil K Pandey <sunil.k.pandey@intel.com> diff --git a/gcc/testsuite/g++.dg/guality/guality.exp b/gcc/testsuite/g++.dg/guality/guality.exp index 4be22ba..757b20b 100644 --- a/gcc/testsuite/g++.dg/guality/guality.exp +++ b/gcc/testsuite/g++.dg/guality/guality.exp @@ -48,6 +48,14 @@ if ![info exists ::env(GUALITY_GDB_NAME)] { } report_gdb $::env(GUALITY_GDB_NAME) [info script] +global DG_TORTURE_OPTIONS LTO_TORTURE_OPTIONS +set guality_dg_torture_options [guality_minimal_options $DG_TORTURE_OPTIONS] +torture-init +set-torture-options \ + $guality_dg_torture_options \ + [list {}] \ + $LTO_TORTURE_OPTIONS + if {[check_guality " #include \"$srcdir/$subdir/guality.h\" volatile long int varl = 6; @@ -65,4 +73,5 @@ if [info exists guality_gdb_name] { unsetenv GUALITY_GDB_NAME } +torture-finish dg-finish diff --git a/gcc/testsuite/gcc.dg/guality/guality.exp b/gcc/testsuite/gcc.dg/guality/guality.exp index d999434..ca77a44 100644 --- a/gcc/testsuite/gcc.dg/guality/guality.exp +++ b/gcc/testsuite/gcc.dg/guality/guality.exp @@ -62,7 +62,8 @@ proc guality_transform_options { args } { } global DG_TORTURE_OPTIONS -set guality_dg_torture_options [guality_transform_options $DG_TORTURE_OPTIONS] +set guality_dg_torture_options [guality_minimal_options $DG_TORTURE_OPTIONS] +set guality_dg_torture_options [guality_transform_options $guality_dg_torture_options] set guality_lto_torture_options [guality_transform_options $LTO_TORTURE_OPTIONS] torture-init set-torture-options \ diff --git a/gcc/testsuite/gfortran.dg/guality/guality.exp b/gcc/testsuite/gfortran.dg/guality/guality.exp index f76347d..eaa7ae7 100644 --- a/gcc/testsuite/gfortran.dg/guality/guality.exp +++ b/gcc/testsuite/gfortran.dg/guality/guality.exp @@ -29,10 +29,17 @@ if ![info exists ::env(GUALITY_GDB_NAME)] { } report_gdb $::env(GUALITY_GDB_NAME) [info script] +global DG_TORTURE_OPTIONS +set guality_dg_torture_options [guality_minimal_options $DG_TORTURE_OPTIONS] +torture-init +set-torture-options \ + $guality_dg_torture_options \ + gfortran-dg-runtest [lsort [glob $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ]] "" "" if [info exists guality_gdb_name] { unsetenv GUALITY_GDB_NAME } +torture-finish dg-finish diff --git a/gcc/testsuite/lib/gcc-gdb-test.exp b/gcc/testsuite/lib/gcc-gdb-test.exp index bb966d4..b13d3ec 100644 --- a/gcc/testsuite/lib/gcc-gdb-test.exp +++ b/gcc/testsuite/lib/gcc-gdb-test.exp @@ -166,3 +166,17 @@ proc report_gdb { gdb loc } { } send_log -- "---\n$gdb_version\n---\n" } + +# Argument 0 is the option list. +# Return the option list, ensuring that at least -Og is present. + +proc guality_minimal_options { args } { + set options [lindex $args 0] + foreach opt $options { + if { [regexp -- "-Og" $opt] } { + return $options + } + } + + return [lappend options "-Og"] +} diff --git a/gcc/testsuite/lib/gfortran-dg.exp b/gcc/testsuite/lib/gfortran-dg.exp index 37fb4f0..4aec0a5 100644 --- a/gcc/testsuite/lib/gfortran-dg.exp +++ b/gcc/testsuite/lib/gfortran-dg.exp @@ -124,10 +124,16 @@ proc gfortran-dg-prune { system text } { # as c-torture does. proc gfortran-dg-runtest { testcases flags default-extra-flags } { global runtests - global DG_TORTURE_OPTIONS torture_with_loops - - torture-init - set-torture-options $DG_TORTURE_OPTIONS + global torture_with_loops + + # Some callers set torture options themselves; don't override those. + set existing_torture_options [torture-options-exist] + if { $existing_torture_options == 0 } { + global DG_TORTURE_OPTIONS + torture-init + set-torture-options $DG_TORTURE_OPTIONS + } + dump-torture-options foreach test $testcases { # If we're only testing specific files and this isn't one of @@ -154,7 +160,9 @@ proc gfortran-dg-runtest { testcases flags default-extra-flags } { } } - torture-finish + if { $existing_torture_options == 0 } { + torture-finish + } } proc gfortran-dg-debug-runtest { target_compile trivial opt_opts testcases } { |