PR52665 do not let .ident confuse assembler scan tests
A branch with a name matching scan-assembler pattern triggers inappropriate FAIL. E.g. branch fixups-testsuite and - gcc.target/i386/pr65871-?.c (scan-assembler-not "test") - gcc.target/i386/pr41442.c (scan-assembler-times "test|cmp" 2) etc. This is a recurring problem as can be seen by some -fno-ident additions by commits from e.g. Michael Meissner over the years: builtins-58.c, powerpc/pr46728-?.c The patch below adds -fno-ident if a testcase contains one of scan-assembler, scan-assembler-not or scan-assembler-times. Regression tested on x86_64-unknown-linux on a fixups-testsuite branch where it fixes several false FAILs without regressions. gcc/testsuite/ChangeLog 2016-06-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> PR testsuite/52665 * lib/gcc-dg.exp (gcc-dg-test-1): Iterate over _required_options. * lib/target-supports.exp (scan-assembler_required_options, scan-assembler-not_required_options, scan-assembler-times_required_options): Add -fno-ident. * lib/scanasm.exp (scan-assembler-times): Fix error message. * c-c++-common/ident-0a.c: New test. * c-c++-common/ident-0b.c: New test. * c-c++-common/ident-1a.c: New test. * c-c++-common/ident-1b.c: New test. * c-c++-common/ident-2a.c: New test. * c-c++-common/ident-2b.c: New test. From-SVN: r264128
This commit is contained in:
parent
cfaa1c8908
commit
eb6ffc6682
@ -1,3 +1,18 @@
|
||||
2018-09-05 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
|
||||
|
||||
PR testsuite/52665
|
||||
* lib/gcc-dg.exp (gcc-dg-test-1): Iterate over _required_options.
|
||||
* lib/target-supports.exp (scan-assembler_required_options,
|
||||
scan-assembler-not_required_options,
|
||||
scan-assembler-times_required_options): Add -fno-ident.
|
||||
* lib/scanasm.exp (scan-assembler-times): Fix error message.
|
||||
* c-c++-common/ident-0a.c: New test.
|
||||
* c-c++-common/ident-0b.c: New test.
|
||||
* c-c++-common/ident-1a.c: New test.
|
||||
* c-c++-common/ident-1b.c: New test.
|
||||
* c-c++-common/ident-2a.c: New test.
|
||||
* c-c++-common/ident-2b.c: New test.
|
||||
|
||||
2018-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||
|
||||
* gcc.dg/recip_sqrt_mult_1.c: New test.
|
||||
|
6
gcc/testsuite/c-c++-common/ident-0a.c
Normal file
6
gcc/testsuite/c-c++-common/ident-0a.c
Normal file
@ -0,0 +1,6 @@
|
||||
/* PR testsuite/52665
|
||||
* Make sure scan-assembler-not turns off .ident */
|
||||
/* { dg-do compile } */
|
||||
int i;
|
||||
|
||||
/* { dg-final { scan-assembler-not "GCC: " } } */
|
10
gcc/testsuite/c-c++-common/ident-0b.c
Normal file
10
gcc/testsuite/c-c++-common/ident-0b.c
Normal file
@ -0,0 +1,10 @@
|
||||
/* PR testsuite/52665
|
||||
* Make sure scan-assembler-not turns off .ident unless -fident in testcase */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-fident" } */
|
||||
int i;
|
||||
|
||||
/* { dg-final { scan-assembler-not "GCC: " { xfail *-*-* } } } */
|
||||
/* The testsuite saw scan-assembler-not and turned off .ident so the above
|
||||
* has to fail for proper operation since the testsuite itself forced
|
||||
* -fident on again. */
|
8
gcc/testsuite/c-c++-common/ident-1a.c
Normal file
8
gcc/testsuite/c-c++-common/ident-1a.c
Normal file
@ -0,0 +1,8 @@
|
||||
/* PR testsuite/52665
|
||||
* Make sure scan-assembler turns off .ident */
|
||||
/* { dg-do compile } */
|
||||
int i;
|
||||
|
||||
/* { dg-final { scan-assembler "GCC: " { xfail *-*-* } } } */
|
||||
/* The testsuite saw scan-assembler and turned off .ident so the above
|
||||
* has to fail for proper operation. */
|
7
gcc/testsuite/c-c++-common/ident-1b.c
Normal file
7
gcc/testsuite/c-c++-common/ident-1b.c
Normal file
@ -0,0 +1,7 @@
|
||||
/* PR testsuite/52665
|
||||
* Make sure scan-assembler turns off .ident unless -fident in testcase */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-fident" } */
|
||||
int i;
|
||||
|
||||
/* { dg-final { scan-assembler "GCC: " } } */
|
6
gcc/testsuite/c-c++-common/ident-2a.c
Normal file
6
gcc/testsuite/c-c++-common/ident-2a.c
Normal file
@ -0,0 +1,6 @@
|
||||
/* PR testsuite/52665
|
||||
* Make sure scan-assembler-times turns off .ident */
|
||||
/* { dg-do compile } */
|
||||
int i;
|
||||
|
||||
/* { dg-final { scan-assembler-times "GCC: " 0 } } */ /* internal test, keep -times 0 ! */
|
7
gcc/testsuite/c-c++-common/ident-2b.c
Normal file
7
gcc/testsuite/c-c++-common/ident-2b.c
Normal file
@ -0,0 +1,7 @@
|
||||
/* PR testsuite/52665
|
||||
* Make sure scan-assembler-times turns off .ident unless -fident in testcase */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-fident" } */
|
||||
int ident;
|
||||
|
||||
/* { dg-final { scan-assembler-times "GCC: " 1 } } */
|
@ -299,9 +299,11 @@ proc gcc-dg-test-1 { target_compile prog do_what extra_tool_flags } {
|
||||
foreach x [split $finalcode "\n"] {
|
||||
set finalcmd [lindex $x 0]
|
||||
if { [info procs ${finalcmd}_required_options] != "" } {
|
||||
set req [${finalcmd}_required_options]
|
||||
if { $req != "" && [lsearch -exact $extra_tool_flags $req] == -1 } {
|
||||
lappend extra_tool_flags $req
|
||||
foreach req [${finalcmd}_required_options] {
|
||||
if { $req != ""
|
||||
&& [lsearch -exact $extra_tool_flags $req] == -1 } {
|
||||
lappend extra_tool_flags $req
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8895,6 +8895,12 @@ proc force_conventional_output_for { test } {
|
||||
}
|
||||
proc ${test}_required_options {} {
|
||||
global gcc_force_conventional_output
|
||||
upvar 1 extra_tool_flags extra_tool_flags
|
||||
if {[regexp -- "^scan-assembler" [info level 0]]
|
||||
&& ![string match "*-fident*" $extra_tool_flags]} {
|
||||
# Do not let .ident confuse assembler scan tests
|
||||
return [list $gcc_force_conventional_output "-fno-ident"]
|
||||
}
|
||||
return $gcc_force_conventional_output
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user