Tested on x86_64-linux, darwin (m32/m64) pushed trunk as obvious,
thanks,
Iain
--- 8< ---
In these cases, the scan check is too general and can match unintended
content emitted as assembler directives or EH/Debug frames, for example:
"por" matches 'live_support' in __eh_frame section content
"sub" matches '.subsections_via_symbols'
"set" matches '.set L$set$0...'
"\$0," matches '.set L$set$0...'
The fix here is make the boundaries of the instruction explicit by
appending or prepending whitespace or characters approprately.
gcc/testsuite/ChangeLog:
* g++.target/i386/pr107563-a.C: Add whitespace boundary to
scan asm match string.
* g++.target/i386/pr107563-b.C: Likewise.
* gcc.target/i386/pr11877-2.c: Likewise.
* gcc.target/i386/pr11877.c: Likewise.
* gcc.target/i386/pr92651.c: Likewise.
* gcc.target/i386/pr98060.c: Likewise.
* gcc.target/i386/sse2-v1ti-logic-2.c: Likewise.
Signed-off-by: Iain Sandoe <[email protected]>
---
gcc/testsuite/g++.target/i386/pr107563-a.C | 2 +-
gcc/testsuite/g++.target/i386/pr107563-b.C | 2 +-
gcc/testsuite/gcc.target/i386/pr11877-2.c | 2 +-
gcc/testsuite/gcc.target/i386/pr11877.c | 2 +-
gcc/testsuite/gcc.target/i386/pr92651.c | 2 +-
gcc/testsuite/gcc.target/i386/pr98060.c | 2 +-
gcc/testsuite/gcc.target/i386/sse2-v1ti-logic-2.c | 2 +-
7 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/gcc/testsuite/g++.target/i386/pr107563-a.C
b/gcc/testsuite/g++.target/i386/pr107563-a.C
index c1c332bb948..ed32932e7ec 100644
--- a/gcc/testsuite/g++.target/i386/pr107563-a.C
+++ b/gcc/testsuite/g++.target/i386/pr107563-a.C
@@ -3,7 +3,7 @@
/* { dg-options "-std=c++2b -O3 -msse2 -mno-sse3" } */
/* { dg-final { scan-assembler-times "psllw" 1 } } */
/* { dg-final { scan-assembler-times "psrlw" 1 } } */
-/* { dg-final { scan-assembler-times "por" 1 } } */
+/* { dg-final { scan-assembler-times "por\[ \t\]" 1 } } */
using temp_vec_type2 [[__gnu__::__vector_size__(8)]] = char;
diff --git a/gcc/testsuite/g++.target/i386/pr107563-b.C
b/gcc/testsuite/g++.target/i386/pr107563-b.C
index d5cc0300f46..17dad6ff1ec 100644
--- a/gcc/testsuite/g++.target/i386/pr107563-b.C
+++ b/gcc/testsuite/g++.target/i386/pr107563-b.C
@@ -2,7 +2,7 @@
/* { dg-options "-std=c++2b -O3 -msse2 -mno-sse3" } */
/* { dg-final { scan-assembler-times "psllw" 1 } } */
/* { dg-final { scan-assembler-times "psrlw" 1 } } */
-/* { dg-final { scan-assembler-times "por" 1 } } */
+/* { dg-final { scan-assembler-times "por\[ \t\]" 1 } } */
using temp_vec_type [[__gnu__::__vector_size__(16)]] = char;
diff --git a/gcc/testsuite/gcc.target/i386/pr11877-2.c
b/gcc/testsuite/gcc.target/i386/pr11877-2.c
index 4782dd2f799..42717fee85f 100644
--- a/gcc/testsuite/gcc.target/i386/pr11877-2.c
+++ b/gcc/testsuite/gcc.target/i386/pr11877-2.c
@@ -23,4 +23,4 @@ foo (int *p)
}
/* { dg-final { scan-assembler-times "xorl\[ \t\]" 1 } } */
-/* { dg-final { scan-assembler-not "\\\$0," } } */
+/* { dg-final { scan-assembler-not "\[ \t\]\\\$0," } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr11877.c
b/gcc/testsuite/gcc.target/i386/pr11877.c
index 5a488cccf77..a097425cb7b 100644
--- a/gcc/testsuite/gcc.target/i386/pr11877.c
+++ b/gcc/testsuite/gcc.target/i386/pr11877.c
@@ -13,4 +13,4 @@ void bar (int *p)
}
/* { dg-final { scan-assembler-times "xorl\[ \t\]" 2 } } */
-/* { dg-final { scan-assembler-not "\\\$0," } } */
+/* { dg-final { scan-assembler-not "\[ \t\]\\\$0," } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr92651.c
b/gcc/testsuite/gcc.target/i386/pr92651.c
index 3d0c3c7bf4e..30b7684c69f 100644
--- a/gcc/testsuite/gcc.target/i386/pr92651.c
+++ b/gcc/testsuite/gcc.target/i386/pr92651.c
@@ -12,5 +12,5 @@ int foo(unsigned char a, unsigned char b)
/* { dg-final { scan-assembler-not "cmov*" } } */
/* { dg-final { scan-assembler "(cltd|cdq|shr)" } } */
/* { dg-final { scan-assembler-times "xor" 1 } } */
-/* { dg-final { scan-assembler-times "sub" 2 } } */
+/* { dg-final { scan-assembler-times "\tsub" 2 } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr98060.c
b/gcc/testsuite/gcc.target/i386/pr98060.c
index f82620ceb64..205f0c4aa81 100644
--- a/gcc/testsuite/gcc.target/i386/pr98060.c
+++ b/gcc/testsuite/gcc.target/i386/pr98060.c
@@ -2,7 +2,7 @@
/* { dg-do compile } */
/* { dg-options "-O2" } */
-/* { dg-final { scan-assembler-not "set" } } */
+/* { dg-final { scan-assembler-not "set\[abceglnops\]" } } */
/* { dg-final { scan-assembler-times "adc" 4 } } */
/* { dg-final { scan-assembler-times "sbb" 4 } } */
diff --git a/gcc/testsuite/gcc.target/i386/sse2-v1ti-logic-2.c
b/gcc/testsuite/gcc.target/i386/sse2-v1ti-logic-2.c
index 3ec64555334..83e9763b4b4 100644
--- a/gcc/testsuite/gcc.target/i386/sse2-v1ti-logic-2.c
+++ b/gcc/testsuite/gcc.target/i386/sse2-v1ti-logic-2.c
@@ -49,5 +49,5 @@ void not2()
}
/* { dg-final { scan-assembler-times "pand" 2 } } */
-/* { dg-final { scan-assembler-times "por" 2 } } */
+/* { dg-final { scan-assembler-times "por\[ \t\]" 2 } } */
/* { dg-final { scan-assembler-times "pxor" 4 } } */
--
2.50.1 (Apple Git-155)