Jakub Jelinek <ja...@redhat.com> writes: > On Sun, Jul 07, 2019 at 10:41:43AM +0100, Richard Sandiford wrote: >> gcc/testsuite/ >> * c-c++-common/guality/Og-static-wo-1.c: New test. >> * g++.dg/guality/guality.exp: Separate the c-c++-common tests into >> "Og" and "general" tests. Run the latter at -O0 and -Og only. > > Do we really want further filename prefixes based tests? > I find it extremely ugly in /vect/ and would appreciate not to add further > ones.
But IMO the reason the /vect/ stuff is so ugly is that we use prefixes for things that ought to be in dg-additional-options instead (-fno-tree-dce, -fno-tree-sra, -fwrapv, -ftrapv, etc.). I think the core vect.exp split between bb-slp-* and loop vectorisation makes more sense though. We're testing two different modes of vectorisation, and at least in principle, it's better to differentiate between them in one place rather than in each individual test. The same idea applies here. guality.exp is testing how optimisation affects debug info quality, and we have two major modes: optimise normally, or optimise for the debug experience. Some things are fundamentally only going to work with the latter. > The tests can just use dg-skip-if, can't they? > /* { dg-skip-if "" { *-*-* } { "*" } { "-O0" "-Og" } } */ > would do it. Yeah, but I'd rather not maintain the list in each individual test. E.g. I'd still like to add -O1g/-O1+g etc. at some point. Would having a subdirectory for the new tests be better? Either with or without a separate .exp harness. Richard > >> --- gcc/testsuite/g++.dg/guality/guality.exp 2019-07-01 10:15:31.000000000 >> +0100 >> +++ gcc/testsuite/g++.dg/guality/guality.exp 2019-07-07 10:29:19.999365874 >> +0100 >> @@ -65,8 +65,22 @@ if {[check_guality " >> return 0; >> } >> "]} { >> - gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.C]] "" "" >> - gcc-dg-runtest [lsort [glob $srcdir/c-c++-common/guality/*.c]] "" "" >> + set general [list] >> + set Og [list] >> + foreach file [lsort [glob $srcdir/c-c++-common/guality/*.c]] { >> + switch -glob -- [file tail $file] { >> + Og-* { lappend Og $file } >> + * { lappend general $file } >> + } >> + } >> + >> + gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.C]] "" "" >> + gcc-dg-runtest $general "" "" >> + set-torture-options \ >> + [list "-O0" "-Og"] \ >> + [list {}] \ >> + [list "-Og -flto"] >> + gcc-dg-runtest $Og "" "" >> } >> >> if [info exists guality_gdb_name] { >> Index: gcc/testsuite/gcc.dg/guality/guality.exp >> =================================================================== >> --- gcc/testsuite/gcc.dg/guality/guality.exp 2019-07-01 10:15:31.000000000 >> +0100 >> +++ gcc/testsuite/gcc.dg/guality/guality.exp 2019-07-07 10:29:19.999365874 >> +0100 >> @@ -80,8 +80,22 @@ if {[check_guality " >> return 0; >> } >> "]} { >> - gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.c]] "" "" >> - gcc-dg-runtest [lsort [glob $srcdir/c-c++-common/guality/*.c]] "" >> "-Wc++-compat" >> + set general [list] >> + set Og [list] >> + foreach file [lsort [glob $srcdir/c-c++-common/guality/*.c]] { >> + switch -glob -- [file tail $file] { >> + Og-* { lappend Og $file } >> + * { lappend general $file } >> + } >> + } >> + >> + gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.c]] "" "" >> + gcc-dg-runtest $general "" "-Wc++-compat" >> + set-torture-options \ >> + [list "-O0" "-Og"] \ >> + [list {}] \ >> + [list "-Og -flto"] >> + gcc-dg-runtest $Og "" "-Wc++-compat" >> } >> >> if [info exists guality_gdb_name] { > > Jakub