testsuite: Adjust cpp2a/lambda-uneval regrex
authorDavid Edelsohn <dje.gcc@gmail.com>
Thu, 21 Jan 2021 19:17:10 +0000 (14:17 -0500)
committerDavid Edelsohn <dje.gcc@gmail.com>
Thu, 21 Jan 2021 23:49:33 +0000 (18:49 -0500)
Both lambda-uneval1.C and lambda-uneval5.C test that a symbol is not
declared global by looking for "globl" assembler directive.  The testcases
generate the "lglobl" directive in AIX XCOFF, which is a false positive.
This patch restricts the regex to ignore a prepended "l".  The patch
also tightens the regex to specifically look for space, tab or period
between the "globl" and the symbol.

Tested on powerpc-ibm-aix7.2.3.0 and powerpc64le-linux-gnu.

* g++.dg/cpp2a/lambda-uneval1.C: Ignore preceding "l" and
intervening period.
* g++.dg/cpp2a/lambda-uneval5.C: Ignore preceding "l" and
explicitly check for intervening space, tab or period.

gcc/testsuite/g++.dg/cpp2a/lambda-uneval1.C
gcc/testsuite/g++.dg/cpp2a/lambda-uneval5.C

index 816b6e994def76e9bbae7bfdd24217b89637eb21..f4505b6957ecdcb0c406731abb6138bd21032e31 100644 (file)
@@ -2,7 +2,7 @@
 
 typedef decltype([]{}) C; // the closure type has no name for linkage purposes
 
-// { dg-final { scan-assembler-not "globl\[ \t]*_Z1f" } }
+// { dg-final { scan-assembler-not "\[^l\]globl\[ \t\.\]*_Z1f" } }
 // { dg-final { scan-assembler-not "_Z1f1C" } }
 void f(C) {}
 
index dc19004d3a1d39f402d8e103d7bc191967b814f7..1e16679311c6c4ca9aa5e23bdb8ca8908f96aa4c 100644 (file)
@@ -2,4 +2,4 @@
 
 using L = decltype([]{ });
 void f(L) { }
-// { dg-final { scan-assembler-not "globl.*_Z1f" } }
+// { dg-final { scan-assembler-not "\[^l\]globl\[ \t\.\]*_Z1f" } }