public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Joern Rennecke <joern.rennecke@embecosm.com>
To: Jeff Law <jeffreyalaw@gmail.com>
Cc: Vineet Gupta <vineetg@rivosinc.com>,
	GCC Patches <gcc-patches@gcc.gnu.org>
Subject: Re: committed [RISC-V]: Harden test scan patterns
Date: Wed, 8 Nov 2023 15:14:16 +0000	[thread overview]
Message-ID: <CAMqJFCq_4c2xaU+8JdtbTh1oEB+5zLdtwzMxUfqsdVmehY8jmg@mail.gmail.com> (raw)
In-Reply-To: <CAMqJFCo+e424rjCUCYGv9yDQtdEhV6J8zwuCb24bEQ286u-nwQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1406 bytes --]

On Wed, 11 Oct 2023 at 05:48, Joern Rennecke
<joern.rennecke@embecosm.com> wrote:

> I've though about this some more, and we need something that's simple for
> dejagnu and simple to describe.
>
> So I propose we look at the first character of the regexp, and if it's neither
> ^ nor \ (neither caret nor backslash), we consider the regexp un-anchored,
> and prepend ^[^"]* , so it won't allow a match after a double quote.
> Then document this in sourcebuild.texi, with some mention of lto information
> and stabs, and also mentioning that if you really want to match irrespective
> of a leading quote, you can prepend ^.* to your regexp.
> There are good reasons to be more specific with your regexps in general,
> but the matches in LTO are particularily damaging because they appear
> semi-random, so often escape a regression test when the test is made,
> only to surface during somebody else's regression test.

I've tried this, and it turns out that we actually have a lot of tests that scan
after or even inside quotes.  I've adjusted the C part of the
testsuite, and parts
of the c++ testsuite, haven't even looked at fortran regressions, but the thing
gets uncomfortably large.  With so many tests affected, this would also cause
headaches when merging branches.

I've attached the patch to illustrate why it's probably not such a good idea.
I have a different approach now which I'll post next.

[-- Attachment #2: scanasm-diff-4.txt --]
[-- Type: text/plain, Size: 137288 bytes --]

2023-10-11  Joern Rennecke  <joern.rennecke@embecosm.com>

gcc/testsuite/
	* lib/scanasm.exp (scan-assembler-times): If first char of
	pattern hints at a simple pattern, prevent match start after
	double quote on same line.
	(scan-assembler-dem, scan-assembler-dem-not): Likewise.
	(dg-scan): Likewise, if also name starts with scan-assembler.
gcc/
	* doc/sourcebuild.texi (Scan the assembly output): Document change.

diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index 8bf701461ec..8b0097c399e 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -3277,20 +3277,33 @@ Passes if @var{regexp} does not match text in the file generated by
 @table @code
 @item scan-assembler @var{regex} [@{ target/xfail @var{selector} @}]
 Passes if @var{regex} matches text in the test's assembler output.
+Note that the assembly output can contain semi-random strings, e.g. in
+LTO and stabs sections.  If @var{regex} is not specific enough, it
+is bound to result in spurious matches.  Not necessarily when the test
+is originally tried, but more likely later, causing intermittent test
+failures.  To avoid the worst of these issues, if the regexp supplied
+does not start with any of the characters @code{\}, @code{\t}, @code{\n},
+@code{(} nor @code{[}, the string @code{(?w)^[^"]*?} will be prepended
+to the regexp, thus avoiding any match that starts after a double quote
+on a line.
 
 @item scan-assembler-not @var{regex} [@{ target/xfail @var{selector} @}]
 Passes if @var{regex} does not match text in the test's assembler output.
+@var{regep} is handled like in @code{scan-assembler}.
 
 @item scan-assembler-times @var{regex} @var{num} [@{ target/xfail @var{selector} @}]
 Passes if @var{regex} is matched exactly @var{num} times in the test's
 assembler output.
+@var{regep} is handled like in @code{scan-assembler}.
 
 @item scan-assembler-dem @var{regex} [@{ target/xfail @var{selector} @}]
 Passes if @var{regex} matches text in the test's demangled assembler output.
+@var{regep} is handled like in @code{scan-assembler}.
 
 @item scan-assembler-dem-not @var{regex} [@{ target/xfail @var{selector} @}]
 Passes if @var{regex} does not match text in the test's demangled assembler
 output.
+@var{regep} is handled like in @code{scan-assembler}.
 
 @item scan-assembler-symbol-section @var{functions} @var{section} [@{ target/xfail @var{selector} @}]
 Passes if @var{functions} are all in @var{section}.  The caller needs to
diff --git a/gcc/testsuite/c-c++-common/ident-1b.c b/gcc/testsuite/c-c++-common/ident-1b.c
index b8b83e64ad2..1f96dbbbbdb 100644
--- a/gcc/testsuite/c-c++-common/ident-1b.c
+++ b/gcc/testsuite/c-c++-common/ident-1b.c
@@ -5,4 +5,4 @@
 /* { dg-require-effective-target ident_directive }*/
 int i;
 
-/* { dg-final { scan-assembler "GCC: " { xfail { { hppa*-*-hpux* && { ! lp64 } } || { powerpc-ibm-aix* || powerpc*-*-darwin* } } } } } */
+/* { dg-final { scan-assembler {"GCC: } { xfail { { hppa*-*-hpux* && { ! lp64 } } || { powerpc-ibm-aix* || powerpc*-*-darwin* } } } } } */
diff --git a/gcc/testsuite/c-c++-common/ident-2b.c b/gcc/testsuite/c-c++-common/ident-2b.c
index 52f0693e164..d488257eca8 100644
--- a/gcc/testsuite/c-c++-common/ident-2b.c
+++ b/gcc/testsuite/c-c++-common/ident-2b.c
@@ -5,4 +5,4 @@
 /* { dg-require-effective-target ident_directive }*/
 int ident;
 
-/* { dg-final { scan-assembler "GCC: " { xfail { { hppa*-*-hpux* && { ! lp64 } } || { powerpc-ibm-aix* || powerpc*-*-darwin* } } } } } */
+/* { dg-final { scan-assembler {"GCC: } { xfail { { hppa*-*-hpux* && { ! lp64 } } || { powerpc-ibm-aix* || powerpc*-*-darwin* } } } } } */
diff --git a/gcc/testsuite/g++.dg/abi/comdat1.C b/gcc/testsuite/g++.dg/abi/comdat1.C
index e1025e357b3..15bd8bc166b 100644
--- a/gcc/testsuite/g++.dg/abi/comdat1.C
+++ b/gcc/testsuite/g++.dg/abi/comdat1.C
@@ -1,10 +1,10 @@
 // PR c++/62302
 
 // { dg-do compile { target *-*-*gnu* } }
-// { dg-final { scan-assembler "_ZN3optIiED5Ev,comdat" } }
-// { dg-final { scan-assembler-not "_ZN3optIiED0Ev,comdat" } }
-// { dg-final { scan-assembler-not "_ZN3optIiED1Ev,comdat" } }
-// { dg-final { scan-assembler-not "_ZN3optIiED2Ev,comdat" } }
+// { dg-final { scan-assembler {.section[^\n]*_ZN3optIiED5Ev,comdat} } }
+// { dg-final { scan-assembler-not {.section[^\n]*_ZN3optIiED0Ev,comdat} } }
+// { dg-final { scan-assembler-not {.section[^\n]*_ZN3optIiED1Ev,comdat} } }
+// { dg-final { scan-assembler-not {.section[^\n]*_ZN3optIiED2Ev,comdat} } }
 
 struct Option {
   virtual ~Option() {}
diff --git a/gcc/testsuite/g++.dg/abi/guard1.C b/gcc/testsuite/g++.dg/abi/guard1.C
index 76b43d30f36..927c6736a05 100644
--- a/gcc/testsuite/g++.dg/abi/guard1.C
+++ b/gcc/testsuite/g++.dg/abi/guard1.C
@@ -1,5 +1,5 @@
 // PR c++/41611
-// { dg-final { scan-assembler-not "_ZGVZN1A1fEvE1i" } }
+// { dg-final { scan-assembler-not "\\_ZGVZN1A1fEvE1i" } }
 
 struct A {
   static int f()
diff --git a/gcc/testsuite/g++.dg/abi/guard2.C b/gcc/testsuite/g++.dg/abi/guard2.C
index 74139a87729..aaf7e9c738f 100644
--- a/gcc/testsuite/g++.dg/abi/guard2.C
+++ b/gcc/testsuite/g++.dg/abi/guard2.C
@@ -1,6 +1,6 @@
 // PR c++/41611
 // Test that the guard gets its own COMDAT group.
-// { dg-final { scan-assembler "_ZGVZN1A1fEvE1i,comdat" { target *-*-linux* *-*-gnu* *-*-uclinux* } } }
+// { dg-final { scan-assembler {\.section[^\n]*_ZGVZN1A1fEvE1i,comdat} { target *-*-linux* *-*-gnu* *-*-uclinux* } } }
 
 struct A {
   static int f()
diff --git a/gcc/testsuite/g++.dg/contracts/contracts12.C b/gcc/testsuite/g++.dg/contracts/contracts12.C
index f888d51296d..0f7de358218 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts12.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts12.C
@@ -3,7 +3,7 @@
 // { dg-do compile }
 // { dg-options "-std=c++2a -fcontracts -fcontract-build-level=default" }
 // { dg-final { scan-assembler-not "audit" } }
-// { dg-final { scan-assembler "default" } }
+// { dg-final { scan-assembler {"default} } }
 
 int main()
 {
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/cdtor-1.C b/gcc/testsuite/g++.dg/debug/dwarf2/cdtor-1.C
index b211c02c894..091398530c1 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/cdtor-1.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/cdtor-1.C
@@ -14,4 +14,4 @@ main()
   K k;
 }
 
-// { dg-final {scan-assembler-times " DW_AT_\[MIPS_\]*linkage_name" 4 } }
+// { dg-final {scan-assembler-times "\\ DW_AT_\[MIPS_\]*linkage_name" 4 } }
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C
index 5868ebc9c85..a9fed0626bf 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C
@@ -1,82 +1,82 @@
 // { dg-do compile }
 // { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=any -fno-eliminate-unused-debug-symbols" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_tmpl_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler {"timespec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"tv_sec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"tv_nsec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"itimerspec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"it_interval.*DW_AT_name} } }
+// { dg-final { scan-assembler {"it_value.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_var_head_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_var_head_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_var_head_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_var_head_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_decl_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_var_head_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_var_head_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_var_head_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_var_head_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_decl_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_decl_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_tmpl_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_tmpl_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_tmpl_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_tmpl_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_tmpl_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_tmpl_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_tmpl_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_tmpl_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_tmpl_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_tmpl_defn_ptr_base.*DW_AT_name} } }
 # 1 "fesd-any.C"
 # 1 "<built-in>"
 # 1 "<command-line>"
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C
index fe0016a4563..07ef81cdb87 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C
@@ -1,82 +1,82 @@
 // { dg-do compile }
 // { dg-options "-gdwarf-2 -dA -femit-struct-debug-baseonly -fno-eliminate-unused-debug-symbols" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_tmpl_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler {"timespec.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"tv_sec.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"tv_nsec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"itimerspec.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"it_interval.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"it_value.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_decl_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_var_head_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_var_head_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_var_head_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_var_head_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_decl_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_decl_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_tmpl_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_tmpl_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_tmpl_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_tmpl_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_tmpl_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_tmpl_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_tmpl_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_tmpl_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_tmpl_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_tmpl_defn_ptr_base.*DW_AT_name} } }
 # 1 "fesd-baseonly.C"
 # 1 "<built-in>"
 # 1 "<command-line>"
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C
index c5a33967426..51441b03512 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C
@@ -1,82 +1,82 @@
 // { dg-do compile }
 // { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=none -fno-eliminate-unused-debug-symbols" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_base_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_base_tmpl_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler {"timespec.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"tv_sec.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"tv_nsec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"itimerspec.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"it_interval.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"it_value.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_decl_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_var_head_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_var_head_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_var_head_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_var_head_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field1_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field1_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field1_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field1_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field2_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field2_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field2_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field2_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_decl_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_base_ordy_decl_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_base_tmpl_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field1_base_tmpl_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field1_base_tmpl_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field1_base_tmpl_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field1_base_tmpl_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field2_base_tmpl_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field2_base_tmpl_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field2_base_tmpl_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field2_base_tmpl_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_base_tmpl_defn_ptr_base.*DW_AT_name} } }
 # 1 "fesd-none.C"
 # 1 "<built-in>"
 # 1 "<command-line>"
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C
index ba40f176375..5aebb91f96e 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C
@@ -1,82 +1,82 @@
 // { dg-do compile }
 // { dg-options "-gdwarf-2 -dA -femit-struct-debug-reduced -fno-eliminate-unused-debug-symbols" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_tmpl_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler {"timespec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"tv_sec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"tv_nsec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"itimerspec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"it_interval.*DW_AT_name} } }
+// { dg-final { scan-assembler {"it_value.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_decl_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_var_head_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_var_head_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_var_head_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_var_head_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_decl_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_decl_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_tmpl_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_tmpl_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_tmpl_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_tmpl_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_tmpl_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_tmpl_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_tmpl_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_tmpl_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_tmpl_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_tmpl_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_tmpl_defn_ptr_base.*DW_AT_name} } }
 # 1 "fesd-reduced.C"
 # 1 "<built-in>"
 # 1 "<command-line>"
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C
index 86eeb21cf10..3f378998a6d 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C
@@ -1,82 +1,82 @@
 // { dg-do compile }
 // { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=sys -fno-eliminate-unused-debug-symbols" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_tmpl_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler {"timespec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"tv_sec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"tv_nsec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"itimerspec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"it_interval.*DW_AT_name} } }
+// { dg-final { scan-assembler {"it_value.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_decl_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_var_head_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_var_head_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_var_head_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_var_head_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_decl_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_decl_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_tmpl_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_tmpl_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_tmpl_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_tmpl_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_tmpl_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_tmpl_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_tmpl_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_tmpl_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_tmpl_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_tmpl_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_tmpl_defn_ptr_base.*DW_AT_name} } }
 # 1 "fesd-sys.C"
 # 1 "<built-in>"
 # 1 "<command-line>"
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/imported-decl-1.C b/gcc/testsuite/g++.dg/debug/dwarf2/imported-decl-1.C
index bfdb4f8f5a0..b9f57fbacb6 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/imported-decl-1.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/imported-decl-1.C
@@ -14,4 +14,4 @@ func ()
   return var2;
 }
 
-// { dg-final { scan-assembler-times "var2\[^\n\r\]*DW_AT_name" 1 } }
+// { dg-final { scan-assembler-times {"var2[^\n\r]*DW_AT_name} 1 } }
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/local-var-in-contructor.C b/gcc/testsuite/g++.dg/debug/dwarf2/local-var-in-contructor.C
index fafff62eab6..bc75d76d773 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/local-var-in-contructor.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/local-var-in-contructor.C
@@ -2,7 +2,7 @@
 // Origin PR27574
 // { dg-do compile }
 // { dg-options "-O0 -gdwarf-2" }
-// { dg-final { scan-assembler "problem" } }
+// { dg-final { scan-assembler {"problem} } }
 
 void f (int *)
 {
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/localclass1.C b/gcc/testsuite/g++.dg/debug/dwarf2/localclass1.C
index 6eb87bb9f01..7e7924b1bcb 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/localclass1.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/localclass1.C
@@ -55,22 +55,22 @@ main ()
   return foo (1) - 10;
 }
 
-// { dg-final { scan-assembler "main\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "foo\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "staticfn1\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "staticfn2\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "staticfn3\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "staticfn4\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler-not "staticfn5\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler-not "staticfn6\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "method1\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "arg1\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "arg2\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "arg3\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler-not "arg4\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler-not "arg5\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler-not "arg6\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler-not "arg7\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler-not "arg8\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "localstruct1\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler-not "localstruct2\[^\n\r\]*DW_AT_name" } }
+// { dg-final { scan-assembler {"main[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"foo[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"staticfn1[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"staticfn2[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"staticfn3[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"staticfn4[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"staticfn5[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"staticfn6[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"method1[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"arg1[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"arg2[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"arg3[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"arg4[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"arg5[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"arg6[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"arg7[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"arg8[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"localstruct1[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"localstruct2[^\n\r]*DW_AT_name} } }
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/localclass2.C b/gcc/testsuite/g++.dg/debug/dwarf2/localclass2.C
index 475f02b5604..da7aad1814e 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/localclass2.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/localclass2.C
@@ -55,22 +55,22 @@ main ()
   return foo (1) - 10;
 }
 
-// { dg-final { scan-assembler "main\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "foo\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "staticfn1\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "staticfn2\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "staticfn3\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "staticfn4\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler-not "staticfn5\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler-not "staticfn6\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "method1\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "arg1\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "arg2\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "arg3\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler-not "arg4\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler-not "arg5\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler-not "arg6\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler-not "arg7\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler-not "arg8\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler "localstruct1\[^\n\r\]*DW_AT_name" } }
-// { dg-final { scan-assembler-not "localstruct2\[^\n\r\]*DW_AT_name" } }
+// { dg-final { scan-assembler {"main[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"foo[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"staticfn1[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"staticfn2[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"staticfn3[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"staticfn4[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"staticfn5[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"staticfn6[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"method1[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"arg1[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"arg2[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"arg3[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"arg4[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"arg5[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"arg6[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"arg7[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"arg8[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler {"localstruct1[^\n\r]*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"localstruct2[^\n\r]*DW_AT_name} } }
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-1.C b/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-1.C
index 3556231edd2..9c5d88841f5 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-1.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-1.C
@@ -3,7 +3,7 @@
 // { dg-options "-gdwarf-2 -dA" }
 // { dg-do compile }
 // { dg-final { scan-assembler "DW_TAG_template_type_param" } }
-// { dg-final { scan-assembler "U\[^\n\r]* DW_AT_name" } }
+// { dg-final { scan-assembler {"U[^\n\r]* DW_AT_name} } }
 
 template <class U>
 U
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-3.C b/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-3.C
index d806104e54a..d1e8a45c519 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-3.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-3.C
@@ -2,7 +2,7 @@
 // Origin PR debug/30161
 // { dg-options "-gdwarf-2 -dA -gno-strict-dwarf -fno-merge-debug-strings" }
 // { dg-final { scan-assembler "DW_TAG_template_value_param" } }
-// { dg-final { scan-assembler "f\[^\n\r]* DW_AT_name" } }
+// { dg-final { scan-assembler {"f[^\n\r]* DW_AT_name} } }
 // { dg-final { scan-assembler "DW_AT_location\[^\\r\\n\]*\[\\r\\n\]*\[^\\r\\n\]*DW_OP_addr\[^\\r\\n\]*\[\\r\\n\]*\[^\\r\\n\]*_Z4blehv\[^\\r\\n\]*\[\\r\\n\]*\[^\\r\\n\]*DW_OP_stack_value" } } */
 
 typedef void (*func_ptr)();
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-5.C b/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-5.C
index cb3a73fa220..ad49f5f843a 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-5.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-5.C
@@ -2,7 +2,7 @@
 // Origin PR debug/30161
 // { dg-options "-gdwarf-2 -dA" }
 // { dg-final { scan-assembler "DW_TAG_template_type_param" } }
-// { dg-final { scan-assembler "T\[^\n\r]* DW_AT_name" } }
+// { dg-final { scan-assembler {"T[^\n\r]* DW_AT_name} } }
 
 template <class T>
 struct vector
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/template-params-1.C b/gcc/testsuite/g++.dg/debug/dwarf2/template-params-1.C
index 21c71ec0624..82dbec1d449 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/template-params-1.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/template-params-1.C
@@ -3,7 +3,7 @@
 // { dg-options "-gdwarf-2 -dA" }
 // { dg-do compile }
 // { dg-final { scan-assembler "DW_TAG_template_type_param" } }
-// { dg-final { scan-assembler "U\[^\n\r]* DW_AT_name" } }
+// { dg-final { scan-assembler {"U[^\n\r]* DW_AT_name} } }
 
 template <class U>
 class A
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/template-params-13.C b/gcc/testsuite/g++.dg/debug/dwarf2/template-params-13.C
index f32ac1711ec..32bfa37c300 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/template-params-13.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/template-params-13.C
@@ -1,7 +1,7 @@
 // { dg-options "-gdwarf-2 -dA" }
 // { dg-do compile }
 // { dg-final { scan-assembler "DW_TAG_template_value_param" } }
-// { dg-final { scan-assembler "N\[^\n\r]* DW_AT_name" } }
+// { dg-final { scan-assembler {"N[^\n\r]* DW_AT_name} } }
 // { dg-final { scan-assembler "9\[^\n\r]* DW_AT_const_value" } }
 
 template <int N> class C {};
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/template-params-3.C b/gcc/testsuite/g++.dg/debug/dwarf2/template-params-3.C
index 7a9af770120..d34188e3970 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/template-params-3.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/template-params-3.C
@@ -2,7 +2,7 @@
 // Origin PR debug/30161
 // { dg-options "-gdwarf-2 -dA -gno-strict-dwarf -fno-merge-debug-strings" }
 // { dg-final { scan-assembler "DW_TAG_template_value_param" } }
-// { dg-final { scan-assembler "f\[^\n\r]* DW_AT_name" } }
+// { dg-final { scan-assembler {"f[^\n\r]* DW_AT_name} } }
 // { dg-final { scan-assembler "DW_AT_location\[^\\r\\n\]*\[\\r\\n\]*\[^\\r\\n\]*DW_OP_addr\[^\\r\\n\]*\[\\r\\n\]*\[^\\r\\n\]*_Z4blehv\[^\\r\\n\]*\[\\r\\n\]*\[^\\r\\n\]*DW_OP_stack_value" } } */
 
 typedef void (*func_ptr) ();
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/template-params-5.C b/gcc/testsuite/g++.dg/debug/dwarf2/template-params-5.C
index ed08122bebc..19a9d17a4d3 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/template-params-5.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/template-params-5.C
@@ -2,7 +2,7 @@
 // Origin PR debug/30161
 // { dg-options "-gdwarf-2 -dA" }
 // { dg-final { scan-assembler "DW_TAG_template_type_param" } }
-// { dg-final { scan-assembler "T\[^\n\r]* DW_AT_name" } }
+// { dg-final { scan-assembler {"T[^\n\r]* DW_AT_name} } }
 
 template <class T>
 struct vector
diff --git a/gcc/testsuite/g++.dg/debug/enum-1.C b/gcc/testsuite/g++.dg/debug/enum-1.C
index 32124c15355..8fab494d816 100644
--- a/gcc/testsuite/g++.dg/debug/enum-1.C
+++ b/gcc/testsuite/g++.dg/debug/enum-1.C
@@ -1,7 +1,7 @@
 /* Verify that used enums are output.  */
 /* { dg-do compile } */
 /* { dg-additional-options "-fno-eliminate-unused-debug-symbols" { target powerpc-ibm-aix* } } */
-/* { dg-final { scan-assembler "JTI_MAX" } } */
+/* { dg-final { scan-assembler {"JTI_MAX} } } */
 
 int var;
 
diff --git a/gcc/testsuite/g++.dg/debug/enum-2.C b/gcc/testsuite/g++.dg/debug/enum-2.C
index 554de37c40a..b59ddac417b 100644
--- a/gcc/testsuite/g++.dg/debug/enum-2.C
+++ b/gcc/testsuite/g++.dg/debug/enum-2.C
@@ -1,7 +1,7 @@
 /* Verify that used enums are output.  */
 /* { dg-do compile } */
 /* { dg-options "-fno-eliminate-unused-debug-symbols" } */
-/* { dg-final { scan-assembler "JTI_MAX" } } */
+/* { dg-final { scan-assembler {"JTI_MAX} } } */
 
 int var;
 
diff --git a/gcc/testsuite/g++.dg/ext/pretty1.C b/gcc/testsuite/g++.dg/ext/pretty1.C
index 06608ae30eb..201d7946b41 100644
--- a/gcc/testsuite/g++.dg/ext/pretty1.C
+++ b/gcc/testsuite/g++.dg/ext/pretty1.C
@@ -60,8 +60,8 @@ __assert_fail (const char *cond, const char *file, unsigned int line,
   abort ();
 }
 
-// { dg-final { scan-assembler "int bar\\(T\\).*with T = int" } }
-// { dg-final { scan-assembler "top level" } }
-// { dg-final { scan-assembler "int main\\(\\)" } }
-// { dg-final { scan-assembler "int bar\\(T\\).*with T = double" } }
-// { dg-final { scan-assembler "int bar\\(T\\).*with T = unsigned char\*" } }
+// { dg-final { scan-assembler {"int bar\(T\).*with T = int} } }
+// { dg-final { scan-assembler {"top level} } }
+// { dg-final { scan-assembler {"int main\(\)} } }
+// { dg-final { scan-assembler {"int bar\(T\).*with T = double} } }
+// { dg-final { scan-assembler {"int bar\(T\).*with T = unsigned char\*} } }
diff --git a/gcc/testsuite/g++.dg/ext/pretty3.C b/gcc/testsuite/g++.dg/ext/pretty3.C
index 01b14579af2..c04d751e2d0 100644
--- a/gcc/testsuite/g++.dg/ext/pretty3.C
+++ b/gcc/testsuite/g++.dg/ext/pretty3.C
@@ -16,4 +16,4 @@ int main ()
 {
   printf ("%s\n", D<int>().foo (0));
 }
-// { dg-final { scan-assembler "const char\\* D<U>::foo\\(typename B<U>::X\\)" } }
+// { dg-final { scan-assembler {"const char\* D<U>::foo\(typename B<U>::X\)} } }
diff --git a/gcc/testsuite/g++.dg/other/unused1.C b/gcc/testsuite/g++.dg/other/unused1.C
index 77625d080f8..8fcdb9574cd 100644
--- a/gcc/testsuite/g++.dg/other/unused1.C
+++ b/gcc/testsuite/g++.dg/other/unused1.C
@@ -41,9 +41,9 @@ int bar5 (void)
   else
     return 6;
 }
-/* { dg-final { scan-assembler "foo" } } */
-/* { dg-final { scan-assembler "boo" } } */
-/* { dg-final { scan-assembler "cue" } } */
+/* { dg-final { scan-assembler {"foo} } } */
+/* { dg-final { scan-assembler {"boo} } } */
+/* { dg-final { scan-assembler {"cue} } } */
 /* The xfail below is for PR33429.  */
 /* { dg-final { scan-assembler "(string|ascii?)z?\[\t \]\"class2(\"|\\\\0)" { xfail *-*-* } } } */
 /* { dg-final { scan-assembler "(string|ascii?)z?\[\t \]\"printer(\"|\\\\0)" } } */
diff --git a/gcc/testsuite/g++.dg/pr44486.C b/gcc/testsuite/g++.dg/pr44486.C
index 01e84289f0b..3fd301d5369 100644
--- a/gcc/testsuite/g++.dg/pr44486.C
+++ b/gcc/testsuite/g++.dg/pr44486.C
@@ -7,4 +7,4 @@ namespace { S f() { const char * s = __PRETTY_FUNCTION__; return S(); } }
 
 int main() { f(); }
 
-// { dg-final { scan-assembler "S \{anonymous\}::f" } }
+// { dg-final { scan-assembler {"S \{anonymous\}::f} } }
diff --git a/gcc/testsuite/gcc.dg/20060410.c b/gcc/testsuite/gcc.dg/20060410.c
index b4d00cb991d..9d7e7ed8ec1 100644
--- a/gcc/testsuite/gcc.dg/20060410.c
+++ b/gcc/testsuite/gcc.dg/20060410.c
@@ -13,4 +13,4 @@ int bar (void)
     return ((struct foo *)0x1234)->i;
 }
 
-/* { dg-final { scan-assembler "foo" { xfail nvptx-*-* } } } */
+/* { dg-final { scan-assembler {"foo} { xfail nvptx-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/const-elim-2.c b/gcc/testsuite/gcc.dg/const-elim-2.c
index bc465cabaca..3d85e661a4e 100644
--- a/gcc/testsuite/gcc.dg/const-elim-2.c
+++ b/gcc/testsuite/gcc.dg/const-elim-2.c
@@ -1,7 +1,7 @@
 /* The string constant in this test case should be emitted exactly once.  */
 /* { dg-do compile } */
 /* { dg-options "-O2" } */
-/* { dg-final { scan-assembler-times "hi there" 1 { xfail nvptx-*-* pdp11-*-* } } } */
+/* { dg-final { scan-assembler-times {"hi there} 1 { xfail nvptx-*-* pdp11-*-* } } } */
 
 static inline int returns_23() { return 23; }
 
diff --git a/gcc/testsuite/gcc.dg/cpp/pr34692.c b/gcc/testsuite/gcc.dg/cpp/pr34692.c
index bcb0ca33d24..4359b2008b3 100644
--- a/gcc/testsuite/gcc.dg/cpp/pr34692.c
+++ b/gcc/testsuite/gcc.dg/cpp/pr34692.c
@@ -6,7 +6,7 @@
 /* { dg-final { scan-hidden "varb" } } */
 /* { dg-final { scan-hidden "varc" } } */
 /* { dg-final { scan-hidden "vard" } } */
-/* { dg-final { scan-assembler "a b cde f g h" } } */
+/* { dg-final { scan-assembler {"a b cde f g h} } } */
 
 #define FOO(y, x) y #x
 #define BAR(x) x
diff --git a/gcc/testsuite/gcc.dg/debug/debug-1.c b/gcc/testsuite/gcc.dg/debug/debug-1.c
index d849527d211..1e5f1273694 100644
--- a/gcc/testsuite/gcc.dg/debug/debug-1.c
+++ b/gcc/testsuite/gcc.dg/debug/debug-1.c
@@ -21,7 +21,7 @@
 
    Similar for MMIX, with the payload insns being "LDO $0,p; ZSNZ $0,$0,2".  */
 /* { dg-options "-dA -fno-if-conversion" { target mips*-*-* mmix-knuth-mmixware } } */
-/* { dg-final { scan-assembler "xyzzy" } } */
+/* { dg-final { scan-assembler {"xyzzy} } } */
 
 long p;
 
diff --git a/gcc/testsuite/gcc.dg/debug/debug-2.c b/gcc/testsuite/gcc.dg/debug/debug-2.c
index ed69994df55..11bbceb59b7 100644
--- a/gcc/testsuite/gcc.dg/debug/debug-2.c
+++ b/gcc/testsuite/gcc.dg/debug/debug-2.c
@@ -3,7 +3,7 @@
 /* { dg-options "-dA" } */
 /* See the comment in debug-1.c.  */
 /* { dg-options "-dA -fno-if-conversion" { target mips*-*-* mmix-knuth-mmixware } } */
-/* { dg-final { scan-assembler "xyzzy" } } */
+/* { dg-final { scan-assembler {"xyzzy} } } */
 
 long p;
 
diff --git a/gcc/testsuite/gcc.dg/debug/debug-6.c b/gcc/testsuite/gcc.dg/debug/debug-6.c
index 4fe680df0b6..a19734d199c 100644
--- a/gcc/testsuite/gcc.dg/debug/debug-6.c
+++ b/gcc/testsuite/gcc.dg/debug/debug-6.c
@@ -1,7 +1,7 @@
 /* Verify that bb-reorder re-inserts nested scopes properly.  */
 /* { dg-do compile } */
 /* { dg-options "-dA" } */
-/* { dg-final { scan-assembler "xyzzy" } } */
+/* { dg-final { scan-assembler {"xyzzy} } } */
 
 extern void abort (void);
 
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-merge.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-merge.c
index 15e09b116cc..ec5d3773470 100644
--- a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-merge.c
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-merge.c
@@ -3,7 +3,7 @@
 /* { dg-require-effective-target string_merging } */
 /* { dg-options "-O2 -gdwarf -dA" } */
 /* { dg-final { scan-assembler "DW_AT_producer: \"GNU C" } } */
-/* { dg-final { scan-assembler-not "GNU C\[^\\n\\r\]*DW_AT_producer" } } */
+/* { dg-final { scan-assembler-not "()GNU C\[^\\n\\r\]*DW_AT_producer" } } */
 
 void func (void)
 {
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c
index 4062268e54c..d2c9044ca8e 100644
--- a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c
@@ -1,48 +1,48 @@
 // { dg-do compile }
 // { dg-options "-gdwarf -dA -femit-struct-debug-detailed=any -fno-eliminate-unused-debug-symbols" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler {"timespec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"tv_sec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"tv_nsec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"itimerspec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"it_interval.*DW_AT_name} } }
+// { dg-final { scan-assembler {"it_value.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_var_head_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_var_head_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_var_head_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_var_head_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_decl_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_decl_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_decl_ref_base.*DW_AT_name} } }
 # 1 "fesd-any.c"
 # 1 "<built-in>"
 # 1 "<command-line>"
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c
index fffdf04cfb6..9b4bd079fee 100644
--- a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c
@@ -1,48 +1,48 @@
 // { dg-do compile }
 // { dg-options "-gdwarf -dA -femit-struct-debug-baseonly -fno-eliminate-unused-debug-symbols" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler {"timespec.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"tv_sec.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"tv_nsec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"itimerspec.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"it_interval.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"it_value.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_decl_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_decl_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_decl_ref_base.*DW_AT_name} } }
 # 1 "fesd-baseonly.c"
 # 1 "<built-in>"
 # 1 "<command-line>"
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c
index 6fba51287ef..852aa8b661b 100644
--- a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c
@@ -1,48 +1,48 @@
 // { dg-do compile }
 // { dg-options "-gdwarf -dA -femit-struct-debug-detailed=none -fno-eliminate-unused-debug-symbols" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler {"timespec.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"tv_sec.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"tv_nsec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"itimerspec.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"it_interval.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"it_value.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_decl_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field1_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field1_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field1_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field1_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field2_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field2_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field2_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field2_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_decl_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_base_ordy_decl_ref_base.*DW_AT_name} } }
 # 1 "fesd-none.c"
 # 1 "<built-in>"
 # 1 "<command-line>"
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c
index 4209e30e3f9..8d6dd30dac3 100644
--- a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c
@@ -1,48 +1,48 @@
 // { dg-do compile }
 // { dg-options "-gdwarf -dA -femit-struct-debug-reduced -fno-eliminate-unused-debug-symbols" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler {"timespec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"tv_sec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"tv_nsec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"itimerspec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"it_interval.*DW_AT_name} } }
+// { dg-final { scan-assembler {"it_value.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_decl_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_decl_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_decl_ref_base.*DW_AT_name} } }
 # 1 "fesd-reduced.c"
 # 1 "<built-in>"
 # 1 "<command-line>"
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c
index 9c100d7cf91..aa9779ac3fd 100644
--- a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c
@@ -1,48 +1,48 @@
 // { dg-do compile }
 // { dg-options "-gdwarf -dA -femit-struct-debug-detailed=sys -fno-eliminate-unused-debug-symbols" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler {"timespec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"tv_sec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"tv_nsec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"itimerspec.*DW_AT_name} } }
+// { dg-final { scan-assembler {"it_interval.*DW_AT_name} } }
+// { dg-final { scan-assembler {"it_value.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ptr_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_fld_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_head.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_head_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"gstruct_head_ordy_decl_ref_head.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler-not {"field_head_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_ptr_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field_base_ordy_defn_fld_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_defn_var_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field1_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_inc.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_ref.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_ptr.*DW_AT_name} } }
+// { dg-final { scan-assembler {"field2_base_ordy_defn_var_base_fld.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_head_ordy_decl_ref_base.*DW_AT_name} } }
+// { dg-final { scan-assembler {"gstruct_base_ordy_decl_ref_base.*DW_AT_name} } }
 # 1 "fesd-sys.c"
 # 1 "<built-in>"
 # 1 "<command-line>"
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/pr31230.c b/gcc/testsuite/gcc.dg/debug/dwarf2/pr31230.c
index 36d55bf30fd..936f93fdc19 100644
--- a/gcc/testsuite/gcc.dg/debug/dwarf2/pr31230.c
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/pr31230.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-options "-gdwarf -dA --param ggc-min-expand=0 --param ggc-min-heapsize=0" } */
-/* { dg-final { scan-assembler-times "DIE.*DW_TAG_array_type" 1  } } */
-/* { dg-final { scan-assembler-times "DIE.*DW_TAG_subrange_type" 1  } } */
+/* { dg-final { scan-assembler-times {DIE[^\n]*DW_TAG_array_type} 1  } } */
+/* { dg-final { scan-assembler-times {DIE[^\n]*DW_TAG_subrange_type} 1  } } */
 
 void f1 (void)
 {
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/pr71855.c b/gcc/testsuite/gcc.dg/debug/dwarf2/pr71855.c
index 4fd8b74f329..4e19fe04da8 100644
--- a/gcc/testsuite/gcc.dg/debug/dwarf2/pr71855.c
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/pr71855.c
@@ -8,4 +8,4 @@ foo (const char *format, ...)
 {
 }
 
-// { dg-final { scan-assembler-times "DIE.*DW_TAG_unspecified_parameters" 1 } }
+// { dg-final { scan-assembler-times {DIE[^\n]*DW_TAG_unspecified_parameters} 1 } }
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-1.c b/gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-1.c
index a9c0efb3fa8..381ac46f641 100644
--- a/gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-1.c
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-1.c
@@ -14,4 +14,4 @@ int main()
    unusedbar.  */
 /* { dg-final { scan-assembler-times "DW_TAG_subprogram" 4 } } */
 /* { dg-final { scan-assembler-times "DW_TAG_formal_parameter" 2 } } */
-/* { dg-final { scan-assembler-not "unusedbar" } } */
+/* { dg-final { scan-assembler-not {"unusedbar} } } */
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-2.c b/gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-2.c
index c3a710e2f89..b91dea79f03 100644
--- a/gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-2.c
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-2.c
@@ -14,4 +14,4 @@ int main()
    unusedbar.  */
 /* { dg-final { scan-assembler-times "DW_TAG_subprogram" 4 } } */
 /* { dg-final { scan-assembler-times "DW_TAG_formal_parameter" 2 } } */
-/* { dg-final { scan-assembler-not "unusedbar" } } */
+/* { dg-final { scan-assembler-not {"unusedbar} } } */
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/prod-options.c b/gcc/testsuite/gcc.dg/debug/dwarf2/prod-options.c
index 19457173eb3..d10da077830 100644
--- a/gcc/testsuite/gcc.dg/debug/dwarf2/prod-options.c
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/prod-options.c
@@ -5,7 +5,7 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -gdwarf -dA -fno-merge-debug-strings -fdebug-prefix-map=a=b" } */
 /* { dg-final { scan-assembler "\"GNU C\[^\\n\\r\]+ DW_AT_producer" } } */
-/* { dg-final { scan-assembler-not "debug-prefix-map" } } */
+/* { dg-final { scan-assembler-not "()debug-prefix-map" } } */
 
 void func (void)
 {
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/static1.c b/gcc/testsuite/gcc.dg/debug/dwarf2/static1.c
index bdc118ddcec..a6919e812cd 100644
--- a/gcc/testsuite/gcc.dg/debug/dwarf2/static1.c
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/static1.c
@@ -5,4 +5,4 @@ main(void)
 {
  static int unused_local_var;
 }
-/* { dg-final { scan-assembler "unused_local_var" } } */
+/* { dg-final { scan-assembler {"unused_local_var"} } } */
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/var1.c b/gcc/testsuite/gcc.dg/debug/dwarf2/var1.c
index 297d244e2cc..0a81d297547 100644
--- a/gcc/testsuite/gcc.dg/debug/dwarf2/var1.c
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/var1.c
@@ -1,7 +1,7 @@
 /* PR 23190 */
 /* { dg-do compile }
 /* { dg-options "-gdwarf -dA -fno-merge-debug-strings" } */
-/* { dg-final { scan-assembler "xyzzy\[^\\n\\r\]+DW_AT_name" } } */
+/* { dg-final { scan-assembler {"xyzzy[^\n\r]+DW_AT_name} } } */
 
 void f(void)
 {
diff --git a/gcc/testsuite/gcc.dg/debug/enum-1.c b/gcc/testsuite/gcc.dg/debug/enum-1.c
index 32124c15355..8fab494d816 100644
--- a/gcc/testsuite/gcc.dg/debug/enum-1.c
+++ b/gcc/testsuite/gcc.dg/debug/enum-1.c
@@ -1,7 +1,7 @@
 /* Verify that used enums are output.  */
 /* { dg-do compile } */
 /* { dg-additional-options "-fno-eliminate-unused-debug-symbols" { target powerpc-ibm-aix* } } */
-/* { dg-final { scan-assembler "JTI_MAX" } } */
+/* { dg-final { scan-assembler {"JTI_MAX} } } */
 
 int var;
 
diff --git a/gcc/testsuite/gcc.dg/pr28755.c b/gcc/testsuite/gcc.dg/pr28755.c
index 50b56fb8907..918085829d4 100644
--- a/gcc/testsuite/gcc.dg/pr28755.c
+++ b/gcc/testsuite/gcc.dg/pr28755.c
@@ -2,7 +2,7 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target ptr32plus } */
 /* { dg-options "-Os" } */
-/* { dg-final { scan-assembler-times "2112543726\|7deadbee" 2 } } */
+/* { dg-final { scan-assembler-times {"2112543726\|7deadbee} 2 } } */
 /* { dg-skip-if "integer output is different here" { nvptx-*-* } } */
 
 struct S
diff --git a/gcc/testsuite/gcc.dg/pr87314-1.c b/gcc/testsuite/gcc.dg/pr87314-1.c
index 0cb9c07e32c..13170afeccc 100644
--- a/gcc/testsuite/gcc.dg/pr87314-1.c
+++ b/gcc/testsuite/gcc.dg/pr87314-1.c
@@ -8,6 +8,6 @@ int h() { return "bye"=="helloooobye"+8; }
 /* { dg-final { scan-tree-dump-times "hello" 1 "original" } } */
 /* The test in h() should be retained because the result depends on
    string merging.  */
-/* { dg-final { scan-assembler "hellooo" { target { ! nvptx*-*-* } } } } */
+/* { dg-final { scan-assembler {"hellooo} { target { ! nvptx*-*-* } } } } */
 /* { dg-final { scan-assembler "104, 101, 108, 108, 111, 111, 111" { target { nvptx*-*-* } } } } */
 
diff --git a/gcc/testsuite/gcc.dg/torture/pr36400.c b/gcc/testsuite/gcc.dg/torture/pr36400.c
index 8d21ef84791..3a888c5a1f1 100644
--- a/gcc/testsuite/gcc.dg/torture/pr36400.c
+++ b/gcc/testsuite/gcc.dg/torture/pr36400.c
@@ -14,4 +14,4 @@ void baz()
   barptr->some_string = "Everything OK";
 }
 
-/* { dg-final { scan-assembler "Everything OK" { xfail nvptx-*-* pdp11-*-* } } } */
+/* { dg-final { scan-assembler {"Everything OK} { xfail nvptx-*-* pdp11-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/unused-5.c b/gcc/testsuite/gcc.dg/unused-5.c
index bdd5c8ecd47..3ff8d41a710 100644
--- a/gcc/testsuite/gcc.dg/unused-5.c
+++ b/gcc/testsuite/gcc.dg/unused-5.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-Wunused" } */
-/* { dg-final { scan-assembler "string_to_look_for" } } */
+/* { dg-final { scan-assembler {"string_to_look_for} } } */
 /* nvptx outputs strings as array of ints.  */
 /* { dg-skip-if "" { nvptx-*-* } } */
 
diff --git a/gcc/testsuite/lib/scanasm.exp b/gcc/testsuite/lib/scanasm.exp
index 5df80325dff..2770ef8c54d 100644
--- a/gcc/testsuite/lib/scanasm.exp
+++ b/gcc/testsuite/lib/scanasm.exp
@@ -65,6 +65,12 @@ proc dg-scan { name positive testcase output_file orig_args } {
 
     set pattern [lindex $orig_args 0]
     set printable_pattern [make_pattern_printable $pattern]
+    # Avoid matches in lto sections or stabs with simple patterns like "sr" .
+    if { [string first [string index $pattern  0] "\\\t\n(\["] < 0 
+         && [string compare -length 14 $name scan-assembler] == 0 } {
+      set pattern "(?w)^\[^\"]*?$pattern"
+    }
+
 
     set files [dg_glob_remote $output_file]
     if { $files == "" } {
@@ -473,6 +479,10 @@ proc scan-assembler-times { args } {
     set pattern [lindex $args 0]
     set times [lindex $args 1]
     set pp_pattern [make_pattern_printable $pattern]
+    # Avoid matches in lto sections or stabs with simple patterns like "sr" .
+    if { [string first [string index $pattern  0] "\\\t\n(\["] < 0 } {
+      set pattern "(?w)^\[^\"]*?$pattern"
+    }
 
     # This must match the rule in gcc-dg.exp.
     set output_file "[file rootname [file tail $filename]].s"
@@ -537,6 +547,10 @@ proc scan-assembler-dem { args } {
     set filename [lindex $testcase 0]
     set pattern [lindex $args 0]
     set pp_pattern [make_pattern_printable $pattern]
+    # Avoid matches in lto sections or stabs with simple patterns like "sr" .
+    if { [string first [string index $pattern  0] "\\\t\n(\["] < 0 } {
+      set pattern "(?w)^\[^\"]*?$pattern"
+    }
     set output_file "[file rootname [file tail $filename]].s"
 
     set files [glob -nocomplain $output_file]
@@ -593,6 +607,10 @@ proc scan-assembler-dem-not { args } {
     set filename [lindex $testcase 0]
     set pattern [lindex $args 0]
     set pp_pattern [make_pattern_printable $pattern]
+    # Avoid matches in lto sections or stabs with simple patterns like "sr" .
+    if { [string first [string index $pattern  0] "\\\t\n(\["] < 0 } {
+      set pattern "(?w)^\[^\"]*?$pattern"
+    }
     set output_file "[file rootname [file tail $filename]].s"
 
     set files [glob -nocomplain $output_file]

  parent reply	other threads:[~2023-11-08 15:14 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-27  9:26 Joern Rennecke
2023-09-27 17:22 ` Jeff Law
2023-09-27 18:22   ` Joern Rennecke
2023-09-27 20:14     ` Jeff Law
2023-09-27 22:12       ` Andrew Pinski
2023-09-27 23:21       ` Vineet Gupta
2023-09-29 13:54         ` Jeff Law
2023-09-30 21:12           ` Joern Rennecke
2023-10-11  4:48             ` Joern Rennecke
2023-10-11  7:12               ` Joern Rennecke
2023-11-08 15:14               ` Joern Rennecke [this message]
2023-11-08 16:00           ` RFA: make scan-assembler* ignore LTO sections (Was: Re: committed [RISC-V]: Harden test scan patterns) Joern Rennecke
2023-11-10  6:02             ` Jeff Law

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAMqJFCq_4c2xaU+8JdtbTh1oEB+5zLdtwzMxUfqsdVmehY8jmg@mail.gmail.com \
    --to=joern.rennecke@embecosm.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jeffreyalaw@gmail.com \
    --cc=vineetg@rivosinc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).