diff options
author | Bernhard Reutner-Fischer <aldot@gcc.gnu.org> | 2018-09-05 17:31:13 +0200 |
---|---|---|
committer | Bernhard Reutner-Fischer <aldot@gcc.gnu.org> | 2018-09-05 17:31:13 +0200 |
commit | eb6ffc66825a8d36cf89881517624ff2df510aa9 (patch) | |
tree | fea683291168f6317f48364a2af269ba683a31d7 /gcc | |
parent | cfaa1c89088155ae4d249b7a6659017fc8864f76 (diff) | |
download | gcc-eb6ffc66825a8d36cf89881517624ff2df510aa9.zip gcc-eb6ffc66825a8d36cf89881517624ff2df510aa9.tar.gz gcc-eb6ffc66825a8d36cf89881517624ff2df510aa9.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 15 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/ident-0a.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/ident-0b.c | 10 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/ident-1a.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/ident-1b.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/ident-2a.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/ident-2b.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/lib/gcc-dg.exp | 8 | ||||
-rw-r--r-- | gcc/testsuite/lib/target-supports.exp | 6 |
9 files changed, 70 insertions, 3 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 74467f9..6936dd5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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. diff --git a/gcc/testsuite/c-c++-common/ident-0a.c b/gcc/testsuite/c-c++-common/ident-0a.c new file mode 100644 index 0000000..900d206 --- /dev/null +++ b/gcc/testsuite/c-c++-common/ident-0a.c @@ -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: " } } */ diff --git a/gcc/testsuite/c-c++-common/ident-0b.c b/gcc/testsuite/c-c++-common/ident-0b.c new file mode 100644 index 0000000..e08126d --- /dev/null +++ b/gcc/testsuite/c-c++-common/ident-0b.c @@ -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. */ diff --git a/gcc/testsuite/c-c++-common/ident-1a.c b/gcc/testsuite/c-c++-common/ident-1a.c new file mode 100644 index 0000000..867ee43 --- /dev/null +++ b/gcc/testsuite/c-c++-common/ident-1a.c @@ -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. */ diff --git a/gcc/testsuite/c-c++-common/ident-1b.c b/gcc/testsuite/c-c++-common/ident-1b.c new file mode 100644 index 0000000..2431086 --- /dev/null +++ b/gcc/testsuite/c-c++-common/ident-1b.c @@ -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: " } } */ diff --git a/gcc/testsuite/c-c++-common/ident-2a.c b/gcc/testsuite/c-c++-common/ident-2a.c new file mode 100644 index 0000000..131b867 --- /dev/null +++ b/gcc/testsuite/c-c++-common/ident-2a.c @@ -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 ! */ diff --git a/gcc/testsuite/c-c++-common/ident-2b.c b/gcc/testsuite/c-c++-common/ident-2b.c new file mode 100644 index 0000000..a21e25f --- /dev/null +++ b/gcc/testsuite/c-c++-common/ident-2b.c @@ -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 } } */ diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp index f5e6bef..24d0b00 100644 --- a/gcc/testsuite/lib/gcc-dg.exp +++ b/gcc/testsuite/lib/gcc-dg.exp @@ -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 + } } } } diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index b51e8f0..94f61c5 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -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 } } |