https://gcc.gnu.org/g:c99198d5185e60cf2dddcea2a56600a482bf8bc2

commit r16-5570-gc99198d5185e60cf2dddcea2a56600a482bf8bc2
Author: Rainer Orth <[email protected]>
Date:   Tue Nov 25 09:18:13 2025 +0100

    testsuite: i386: Handle check-function-bodies options using dg-add-options
    
    The {gcc,g++}.target/i386 tests that use dg-final { check-function-bodies }
    need addititional options on Solaris/x86.  So far, those tests have been
    updated manually to add the required -fdwarf2-cfi-asm
    -fasynchronous-unwind-tables.  However, this has two issues:
    
    * Those Solaris-only options make dg-options harder to read, although
      they do no harm on other targets.
    
    * Besides, the need for those options repeated got forgotten for each
      new bunch of such tests.
    
    To avoid that problem in the future, this patch introduces a new
    dg-add-options feature, check_function_bodies, that adds those options
    exactly on the targets that need it.  It both improves readability and
    will hopefully not be forgotten again for future tests.
    
    Tested on i386-pc-solaris2.11 with as/ld and gas/ld, and
    x86_64-pc-linux-gnu.
    
    2025-11-21  Rainer Orth  <[email protected]>
    
            gcc:
            * doc/sourcebuild.texi (Add Options): Document
            check_function_bodies.
    
            gcc/testsuite:
            * lib/target-supports.exp (add_options_for_check_function_bodies):
            New proc.
    
            * g++.target/i386/cf_check-3.C: Add dg-add-options
            check_function_bodies.
            * g++.target/i386/cf_check-4.C: Likewise.
            * gcc.target/i386/builtin-copysign-2.c: Likewise.
            * gcc.target/i386/builtin-copysign-3.c: Likewise.
            * gcc.target/i386/builtin-copysign-4.c: Likewise.
            * gcc.target/i386/builtin-copysign-5.c: Likewise.
            * gcc.target/i386/builtin-copysign-6.c: Likewise.
            * gcc.target/i386/builtin-copysign-7.c: Likewise.
            * gcc.target/i386/builtin-copysign-8a.c: Likewise.
            * gcc.target/i386/builtin-copysign-8b.c: Likewise.
            * gcc.target/i386/builtin-fabs-1.c: Likewise.
            * gcc.target/i386/builtin-memmove-10.c: Likewise.
            * gcc.target/i386/builtin-memmove-11a.c: Likewise.
            * gcc.target/i386/builtin-memmove-11b.c: Likewise.
            * gcc.target/i386/builtin-memmove-11c.c: Likewise.
            * gcc.target/i386/builtin-memmove-12.c: Likewise.
            * gcc.target/i386/builtin-memmove-13.c: Likewise.
            * gcc.target/i386/builtin-memmove-14.c: Likewise.
            * gcc.target/i386/builtin-memmove-15.c: Likewise.
            * gcc.target/i386/builtin-memmove-1a.c: Likewise.
            * gcc.target/i386/builtin-memmove-1b.c: Likewise.
            * gcc.target/i386/builtin-memmove-1c.c: Likewise.
            * gcc.target/i386/builtin-memmove-1d.c: Likewise.
            * gcc.target/i386/builtin-memmove-2a.c: Likewise.
            * gcc.target/i386/builtin-memmove-2b.c: Likewise.
            * gcc.target/i386/builtin-memmove-2c.c: Likewise.
            * gcc.target/i386/builtin-memmove-2d.c: Likewise.
            * gcc.target/i386/builtin-memmove-3a.c: Likewise.
            * gcc.target/i386/builtin-memmove-3b.c: Likewise.
            * gcc.target/i386/builtin-memmove-3c.c: Likewise.
            * gcc.target/i386/builtin-memmove-4a.c: Likewise.
            * gcc.target/i386/builtin-memmove-4b.c: Likewise.
            * gcc.target/i386/builtin-memmove-4c.c: Likewise.
            * gcc.target/i386/builtin-memmove-5a.c: Likewise.
            * gcc.target/i386/builtin-memmove-5b.c: Likewise.
            * gcc.target/i386/builtin-memmove-5c.c: Likewise.
            * gcc.target/i386/builtin-memmove-6.c: Likewise.
            * gcc.target/i386/builtin-memmove-7.c: Likewise.
            * gcc.target/i386/builtin-memmove-8.c: Likewise.
            * gcc.target/i386/builtin-memmove-9.c: Likewise.
            * gcc.target/i386/cf_check-11.c: Likewise.
            * gcc.target/i386/cf_check-7.c: Likewise.
            * gcc.target/i386/pr120936-1.c: Likewise.
            * gcc.target/i386/pr120936-11.c: Likewise.
            * gcc.target/i386/pr120936-2.c: Likewise.
            * gcc.target/i386/pr120936-4.c: Likewise.
            * gcc.target/i386/pr120936-5.c: Likewise.
            * gcc.target/i386/pr120936-9.c: Likewise.
    
            * g++.target/i386/memset-pr101366-1.C: Switch to dg-add-options
            check_function_bodies.
            * g++.target/i386/memset-pr101366-2.C: Likewise.
            * g++.target/i386/memset-pr108585-1a.C: Likewise.
            * g++.target/i386/memset-pr108585-1b.C: Likewise.
            * g++.target/i386/memset-pr118276-1a.C: Likewise.
            * g++.target/i386/memset-pr118276-1b.C: Likewise.
            * g++.target/i386/memset-pr118276-1c.C: Likewise.
            * gcc.target/i386/memcpy-pr120683-1.c: Likewise.
            * gcc.target/i386/memcpy-pr120683-2.c: Likewise.
            * gcc.target/i386/memcpy-pr120683-3.c: Likewise.
            * gcc.target/i386/memcpy-pr120683-4.c: Likewise.
            * gcc.target/i386/memcpy-pr120683-5.c: Likewise.
            * gcc.target/i386/memcpy-pr120683-6.c: Likewise.
            * gcc.target/i386/memcpy-pr120683-7.c: Likewise.
            * gcc.target/i386/memcpy-strategy-12.c: Likewise.
            * gcc.target/i386/memset-pr120683-1.c: Likewise.
            * gcc.target/i386/memset-pr120683-10.c: Likewise.
            * gcc.target/i386/memset-pr120683-11.c: Likewise.
            * gcc.target/i386/memset-pr120683-12.c: Likewise.
            * gcc.target/i386/memset-pr120683-13.c: Likewise.
            * gcc.target/i386/memset-pr120683-14.c: Likewise.
            * gcc.target/i386/memset-pr120683-15.c: Likewise.
            * gcc.target/i386/memset-pr120683-16.c: Likewise.
            * gcc.target/i386/memset-pr120683-17.c: Likewise.
            * gcc.target/i386/memset-pr120683-18.c: Likewise.
            * gcc.target/i386/memset-pr120683-19.c: Likewise.
            * gcc.target/i386/memset-pr120683-2.c: Likewise.
            * gcc.target/i386/memset-pr120683-20.c: Likewise.
            * gcc.target/i386/memset-pr120683-21.c: Likewise.
            * gcc.target/i386/memset-pr120683-22.c: Likewise.
            * gcc.target/i386/memset-pr120683-23.c: Likewise.
            * gcc.target/i386/memset-pr120683-3.c: Likewise.
            * gcc.target/i386/memset-pr120683-4.c: Likewise.
            * gcc.target/i386/memset-pr120683-5.c: Likewise.
            * gcc.target/i386/memset-pr120683-6.c: Likewise.
            * gcc.target/i386/memset-pr120683-7.c: Likewise.
            * gcc.target/i386/memset-pr120683-8.c: Likewise.
            * gcc.target/i386/memset-pr120683-9.c: Likewise.
            * gcc.target/i386/memset-pr70308-1a.c: Likewise.
            * gcc.target/i386/memset-pr70308-1b.c: Likewise.
            * gcc.target/i386/memset-strategy-10.c: Likewise.
            * gcc.target/i386/memset-strategy-13.c: Likewise.
            * gcc.target/i386/memset-strategy-25.c: Likewise.
            * gcc.target/i386/memset-strategy-28.c: Likewise.
            * gcc.target/i386/memset-strategy-29.c: Likewise.
            * gcc.target/i386/memset-strategy-30.c: Likewise.
            * gcc.target/i386/pr111673.c: Likewise.
            * gcc.target/i386/pr82142a.c: Likewise.
            * gcc.target/i386/pr82142b.c: Likewise.
            * gcc.target/i386/pr92080-17.c: Likewise.

Diff:
---
 gcc/doc/sourcebuild.texi                            |  4 ++++
 gcc/testsuite/g++.target/i386/cf_check-3.C          |  1 +
 gcc/testsuite/g++.target/i386/cf_check-4.C          |  1 +
 gcc/testsuite/g++.target/i386/memset-pr101366-1.C   |  3 ++-
 gcc/testsuite/g++.target/i386/memset-pr101366-2.C   |  3 ++-
 gcc/testsuite/g++.target/i386/memset-pr108585-1a.C  |  3 ++-
 gcc/testsuite/g++.target/i386/memset-pr108585-1b.C  |  3 ++-
 gcc/testsuite/g++.target/i386/memset-pr118276-1a.C  |  3 ++-
 gcc/testsuite/g++.target/i386/memset-pr118276-1b.C  |  3 ++-
 gcc/testsuite/g++.target/i386/memset-pr118276-1c.C  |  3 ++-
 gcc/testsuite/gcc.target/i386/builtin-copysign-2.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-copysign-3.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-copysign-4.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-copysign-5.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-copysign-6.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-copysign-7.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-copysign-8a.c |  1 +
 gcc/testsuite/gcc.target/i386/builtin-copysign-8b.c |  1 +
 gcc/testsuite/gcc.target/i386/builtin-fabs-1.c      |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-10.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-11a.c |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-11b.c |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-11c.c |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-12.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-13.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-14.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-15.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-1a.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-1b.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-1c.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-1d.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-2a.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-2b.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-2c.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-2d.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-3a.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-3b.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-3c.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-4a.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-4b.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-4c.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-5a.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-5b.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-5c.c  |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-6.c   |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-7.c   |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-8.c   |  1 +
 gcc/testsuite/gcc.target/i386/builtin-memmove-9.c   |  1 +
 gcc/testsuite/gcc.target/i386/cf_check-11.c         |  1 +
 gcc/testsuite/gcc.target/i386/cf_check-7.c          |  1 +
 gcc/testsuite/gcc.target/i386/memcpy-pr120683-1.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memcpy-pr120683-2.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memcpy-pr120683-3.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memcpy-pr120683-4.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memcpy-pr120683-5.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memcpy-pr120683-6.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memcpy-pr120683-7.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memcpy-strategy-12.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-1.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-10.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-11.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-12.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-13.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-14.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-15.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-16.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-17.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-18.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-19.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-2.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-20.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-21.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-22.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-23.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-3.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-4.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-5.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-6.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-7.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-8.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr120683-9.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr70308-1a.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-pr70308-1b.c   |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-strategy-10.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-strategy-13.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-strategy-25.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-strategy-28.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-strategy-29.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/memset-strategy-30.c  |  3 ++-
 gcc/testsuite/gcc.target/i386/pr111673.c            |  3 ++-
 gcc/testsuite/gcc.target/i386/pr120936-1.c          |  1 +
 gcc/testsuite/gcc.target/i386/pr120936-11.c         |  1 +
 gcc/testsuite/gcc.target/i386/pr120936-2.c          |  1 +
 gcc/testsuite/gcc.target/i386/pr120936-4.c          |  1 +
 gcc/testsuite/gcc.target/i386/pr120936-5.c          |  1 +
 gcc/testsuite/gcc.target/i386/pr120936-9.c          |  1 +
 gcc/testsuite/gcc.target/i386/pr82142a.c            |  3 ++-
 gcc/testsuite/gcc.target/i386/pr82142b.c            |  3 ++-
 gcc/testsuite/gcc.target/i386/pr92080-17.c          |  3 ++-
 gcc/testsuite/lib/target-supports.exp               | 12 ++++++++++++
 100 files changed, 164 insertions(+), 50 deletions(-)

diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index c51c8f3c4424..ef3736125b04 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -3379,6 +3379,10 @@ keyword}.
 Add the target-specific flags needed to enable functions to bind
 locally when using pic/PIC passes in the testsuite.
 
+@item check_function_bodies
+Add the target-specific flags needed to use
+@code{check-function-bodies} from @code{dg-final}.
+
 @item float@var{n}
 Add the target-specific flags needed to use the @code{_Float@var{n}} type.
 
diff --git a/gcc/testsuite/g++.target/i386/cf_check-3.C 
b/gcc/testsuite/g++.target/i386/cf_check-3.C
index 79d3a254fcc5..56107dae76ea 100644
--- a/gcc/testsuite/g++.target/i386/cf_check-3.C
+++ b/gcc/testsuite/g++.target/i386/cf_check-3.C
@@ -1,5 +1,6 @@
 /* { dg-do compile { target { "i?86-*-* x86_64-*-*" } } } */
 /* { dg-options "-O2 -fcf-protection" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.} } 
} */
 
diff --git a/gcc/testsuite/g++.target/i386/cf_check-4.C 
b/gcc/testsuite/g++.target/i386/cf_check-4.C
index 57c40a548606..fc7eb733cd96 100644
--- a/gcc/testsuite/g++.target/i386/cf_check-4.C
+++ b/gcc/testsuite/g++.target/i386/cf_check-4.C
@@ -1,6 +1,7 @@
 /* { dg-do compile { target { "i?86-*-* x86_64-*-*" } } } */
 /* { dg-require-weak "" } */
 /* { dg-options "-O2 -fcf-protection" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.} } 
} */
 
diff --git a/gcc/testsuite/g++.target/i386/memset-pr101366-1.C 
b/gcc/testsuite/g++.target/i386/memset-pr101366-1.C
index 5b1c7b5430f0..79767426a350 100644
--- a/gcc/testsuite/g++.target/i386/memset-pr101366-1.C
+++ b/gcc/testsuite/g++.target/i386/memset-pr101366-1.C
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O3 -march=x86-64-v2 -std=gnu++17 
-fasynchronous-unwind-tables -fdwarf2-cfi-asm" } */
+/* { dg-options "-O3 -march=x86-64-v2 -std=gnu++17" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/g++.target/i386/memset-pr101366-2.C 
b/gcc/testsuite/g++.target/i386/memset-pr101366-2.C
index 0e06eec207c9..b087095a83e4 100644
--- a/gcc/testsuite/g++.target/i386/memset-pr101366-2.C
+++ b/gcc/testsuite/g++.target/i386/memset-pr101366-2.C
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O3 -march=x86-64-v2 -std=gnu++17 
-fasynchronous-unwind-tables -fdwarf2-cfi-asm" } */
+/* { dg-options "-O3 -march=x86-64-v2 -std=gnu++17" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/g++.target/i386/memset-pr108585-1a.C 
b/gcc/testsuite/g++.target/i386/memset-pr108585-1a.C
index 440771a9ddf3..80603241722c 100644
--- a/gcc/testsuite/g++.target/i386/memset-pr108585-1a.C
+++ b/gcc/testsuite/g++.target/i386/memset-pr108585-1a.C
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O3 -march=x86-64 -std=c++20 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mno-stackrealign -fomit-frame-pointer -DUSE_CHAR" } */
+/* { dg-options "-O3 -march=x86-64 -std=c++20 -mno-stackrealign 
-fomit-frame-pointer -DUSE_CHAR" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/g++.target/i386/memset-pr108585-1b.C 
b/gcc/testsuite/g++.target/i386/memset-pr108585-1b.C
index cabd3c2fd178..0e79265e59b1 100644
--- a/gcc/testsuite/g++.target/i386/memset-pr108585-1b.C
+++ b/gcc/testsuite/g++.target/i386/memset-pr108585-1b.C
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O3 -march=x86-64 -std=c++20 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mno-stackrealign -fomit-frame-pointer" } */
+/* { dg-options "-O3 -march=x86-64 -std=c++20 -mno-stackrealign 
-fomit-frame-pointer" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/g++.target/i386/memset-pr118276-1a.C 
b/gcc/testsuite/g++.target/i386/memset-pr118276-1a.C
index 9fa40e7aeed9..a51a1532d1d6 100644
--- a/gcc/testsuite/g++.target/i386/memset-pr118276-1a.C
+++ b/gcc/testsuite/g++.target/i386/memset-pr118276-1a.C
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O3 -march=x86-64 -std=c++17 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -DMODE=0" } */
+/* { dg-options "-O3 -march=x86-64 -std=c++17 -DMODE=0" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/g++.target/i386/memset-pr118276-1b.C 
b/gcc/testsuite/g++.target/i386/memset-pr118276-1b.C
index 3d0b65701f33..173e92aa5046 100644
--- a/gcc/testsuite/g++.target/i386/memset-pr118276-1b.C
+++ b/gcc/testsuite/g++.target/i386/memset-pr118276-1b.C
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O3 -march=x86-64 -std=c++17 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -DMODE=1" } */
+/* { dg-options "-O3 -march=x86-64 -std=c++17 -DMODE=1" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/g++.target/i386/memset-pr118276-1c.C 
b/gcc/testsuite/g++.target/i386/memset-pr118276-1c.C
index 3c955d8f1f4b..c91c2964df7f 100644
--- a/gcc/testsuite/g++.target/i386/memset-pr118276-1c.C
+++ b/gcc/testsuite/g++.target/i386/memset-pr118276-1c.C
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O3 -march=x86-64 -std=c++17 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -DMODE=2" } */
+/* { dg-options "-O3 -march=x86-64 -std=c++17 -DMODE=2" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-copysign-2.c 
b/gcc/testsuite/gcc.target/i386/builtin-copysign-2.c
index d90c5a49a3a7..e1c786bca568 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-copysign-2.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-copysign-2.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-copysign-3.c 
b/gcc/testsuite/gcc.target/i386/builtin-copysign-3.c
index d3b4dd5a4af0..3a30189eb526 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-copysign-3.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-copysign-3.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-copysign-4.c 
b/gcc/testsuite/gcc.target/i386/builtin-copysign-4.c
index 9886fdcc9aee..f08fe35f69a3 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-copysign-4.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-copysign-4.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-copysign-5.c 
b/gcc/testsuite/gcc.target/i386/builtin-copysign-5.c
index 3f4df5f779b0..523faabb99ab 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-copysign-5.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-copysign-5.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-copysign-6.c 
b/gcc/testsuite/gcc.target/i386/builtin-copysign-6.c
index 5b6eb517f823..4c44055d7cf6 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-copysign-6.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-copysign-6.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-copysign-7.c 
b/gcc/testsuite/gcc.target/i386/builtin-copysign-7.c
index 012fb14a85e3..a1f35f52bbb4 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-copysign-7.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-copysign-7.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-copysign-8a.c 
b/gcc/testsuite/gcc.target/i386/builtin-copysign-8a.c
index e390ee27aa3c..5a0f7afe3cdf 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-copysign-8a.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-copysign-8a.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-copysign-8b.c 
b/gcc/testsuite/gcc.target/i386/builtin-copysign-8b.c
index dc9e46121de0..8b5619f4cff4 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-copysign-8b.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-copysign-8b.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx512f -mavx -mtune=generic" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-fabs-1.c 
b/gcc/testsuite/gcc.target/i386/builtin-fabs-1.c
index a9a25f6bd4be..ec0be877f77c 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-fabs-1.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-fabs-1.c
@@ -1,6 +1,7 @@
 /* PR target/122323 */
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-10.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-10.c
index 43d6489de621..4f183747e702 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-10.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-10.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2 -mtune=generic -minline-all-stringops" } 
*/
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-11a.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-11a.c
index 3f4e2cac1cee..bf5369cee8c8 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-11a.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-11a.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2 -mtune=generic -minline-all-stringops" } 
*/
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-11b.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-11b.c
index 031dd12658ed..f80881db196b 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-11b.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-11b.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx512f -march=x86-64-v3 -mtune=generic 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-11c.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-11c.c
index 9c5e2c6f3e1a..91b566c6d59a 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-11c.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-11c.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -march=x86-64-v4 -mmove-max=512 -mtune=generic 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-12.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-12.c
index 270df03f290d..3180a7ecc679 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-12.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-12.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2 -mtune=generic" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-13.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-13.c
index 1c71cce021e4..e21fba337efd 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-13.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-13.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2 -mtune=generic" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-14.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-14.c
index 009c61d8b140..651efa412946 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-14.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-14.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2 -mtune=generic -minline-all-stringops" } 
*/
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-15.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-15.c
index c1ccf4427fae..5fb833bc7e8e 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-15.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-15.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2 -mtune=generic -minline-all-stringops" } 
*/
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-1a.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-1a.c
index 34598753c0dc..6679c966a0e9 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-1a.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-1a.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2 -mtune=generic -minline-all-stringops" } 
*/
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-1b.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-1b.c
index 25d008c51228..356e9390eb5f 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-1b.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-1b.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx512f -march=x86-64-v3 -mtune=generic 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-1c.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-1c.c
index 9eb9a39871db..b532b59f0f3e 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-1c.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-1c.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -march=x86-64-v4 -mmove-max=512 -mtune=generic 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-1d.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-1d.c
index ffa757584e08..8ccbb4e8752e 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-1d.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-1d.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mgeneral-regs-only -march=x86-64 -mtune=generic 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-2a.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-2a.c
index 0a7e7048d60f..903a31cfd343 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-2a.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-2a.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2 -mtune=generic -minline-all-stringops" } 
*/
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-2b.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-2b.c
index 0596ca758419..ac676d078673 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-2b.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-2b.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx512f -march=x86-64-v3 -mtune=generic 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-2c.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-2c.c
index cb3cb9e786e7..656986b458eb 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-2c.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-2c.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -march=x86-64-v4 -mmove-max=512 -mtune=generic 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-2d.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-2d.c
index c27edfeaf0ba..324de74519ea 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-2d.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-2d.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mgeneral-regs-only -march=x86-64 -mtune=generic 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-3a.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-3a.c
index 83cb8e1a4469..cddfd49615b3 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-3a.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-3a.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2 -mtune=generic -minline-all-stringops" } 
*/
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-3b.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-3b.c
index 43fae5c134fe..eda5e749c54b 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-3b.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-3b.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx512f -march=x86-64-v3 -mtune=generic 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-3c.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-3c.c
index 11ccb698e43b..50fac7e64d1a 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-3c.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-3c.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -march=x86-64-v4 -mmove-max=512 -mtune=generic 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-4a.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-4a.c
index c437a5371278..49b84477482b 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-4a.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-4a.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2 -mtune=generic -minline-all-stringops" } 
*/
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-4b.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-4b.c
index 4b65fca11a47..f948d17a0805 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-4b.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-4b.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx512f -march=x86-64-v3 -mtune=generic 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-4c.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-4c.c
index fea3e496c0c9..5cf2520d2140 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-4c.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-4c.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -march=x86-64-v4 -mmove-max=512 -mtune=generic 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-5a.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-5a.c
index c86defbabd5a..bb53a471b51f 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-5a.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-5a.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2 -mtune=generic -minline-all-stringops" } 
*/
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-5b.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-5b.c
index e5fc1569e12a..d42da7f2c809 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-5b.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-5b.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx512f -march=x86-64-v3 -mtune=generic 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-5c.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-5c.c
index a8443f6a67f8..8eac584029f6 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-5c.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-5c.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -march=x86-64-v4 -mmove-max=512 -mtune=generic 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-6.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-6.c
index 6d159160135a..3911c7e77aa3 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-6.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-6.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2 -mtune=generic -minline-all-stringops" } 
*/
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-7.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-7.c
index 4118b1328ff6..6b4eca81ad9b 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-7.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-7.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2 -mtune=generic -minline-all-stringops" } 
*/
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-8.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-8.c
index aa57a109fbeb..70a09fbf6882 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-8.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-8.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2 -mtune=generic -minline-all-stringops" } 
*/
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-9.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-9.c
index f84565ed96a6..6832647b6221 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-9.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-9.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-avx -msse2 -mtune=generic -minline-all-stringops" } 
*/
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/cf_check-11.c 
b/gcc/testsuite/gcc.target/i386/cf_check-11.c
index 9ed65ab0ad5d..2a85a5b4e705 100644
--- a/gcc/testsuite/gcc.target/i386/cf_check-11.c
+++ b/gcc/testsuite/gcc.target/i386/cf_check-11.c
@@ -2,6 +2,7 @@
 /* { dg-do compile { target { "i?86-*-* x86_64-*-*" } } } */
 /* { dg-require-weak "" } */
 /* { dg-options "-O2 -fcf-protection" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.} } 
} */
 
diff --git a/gcc/testsuite/gcc.target/i386/cf_check-7.c 
b/gcc/testsuite/gcc.target/i386/cf_check-7.c
index b9a3b3950562..548e16c2354c 100644
--- a/gcc/testsuite/gcc.target/i386/cf_check-7.c
+++ b/gcc/testsuite/gcc.target/i386/cf_check-7.c
@@ -1,6 +1,7 @@
 /* PR c/122427 */
 /* { dg-do compile { target { "i?86-*-* x86_64-*-*" } } } */
 /* { dg-options "-O2 -fcf-protection" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.} } 
} */
 
diff --git a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-1.c 
b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-1.c
index b1f66789e140..6d5ed4f805a3 100644
--- a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-1.c
+++ b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-1.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -fasynchronous-unwind-tables -fdwarf2-cfi-asm -mno-sse 
-mmemcpy-strategy=unrolled_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-options "-O2 -mno-sse 
-mmemcpy-strategy=unrolled_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-2.c 
b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-2.c
index cd78ae860b6b..47a7ac3bb101 100644
--- a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-2.c
+++ b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-2.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemcpy-strategy=vector_loop:2048:noalign,libcall:-1:noalign" 
} */
+/* { dg-options "-O2 -march=x86-64 
-mmemcpy-strategy=vector_loop:2048:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-3.c 
b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-3.c
index ea3bcca61039..773f84fd2d1e 100644
--- a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-3.c
+++ b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-3.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemcpy-strategy=vector_loop:2048:noalign,libcall:-1:noalign" 
} */
+/* { dg-options "-O2 -march=x86-64 
-mmemcpy-strategy=vector_loop:2048:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-4.c 
b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-4.c
index c2d595f877dc..2116d06b1b52 100644
--- a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-4.c
+++ b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-4.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64-v3 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemcpy-strategy=vector_loop:2048:noalign,libcall:-1:noalign" 
} */
+/* { dg-options "-O2 -march=x86-64-v3 
-mmemcpy-strategy=vector_loop:2048:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-5.c 
b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-5.c
index 294d25c53e6d..6c976118fd01 100644
--- a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-5.c
+++ b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-5.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64-v3 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemcpy-strategy=vector_loop:2048:noalign,libcall:-1:noalign" 
} */
+/* { dg-options "-O2 -march=x86-64-v3 
-mmemcpy-strategy=vector_loop:2048:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-6.c 
b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-6.c
index 2013916f7b2b..731906b0af4b 100644
--- a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-6.c
+++ b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-6.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64-v4 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemcpy-strategy=vector_loop:2048:noalign,libcall:-1:noalign" 
} */
+/* { dg-options "-O2 -march=x86-64-v4 
-mmemcpy-strategy=vector_loop:2048:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-7.c 
b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-7.c
index 30e2c3c6bef0..e2bb409060fb 100644
--- a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-7.c
+++ b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-7.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64-v4 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemcpy-strategy=vector_loop:2048:noalign,libcall:-1:noalign" 
} */
+/* { dg-options "-O2 -march=x86-64-v4 
-mmemcpy-strategy=vector_loop:2048:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memcpy-strategy-12.c 
b/gcc/testsuite/gcc.target/i386/memcpy-strategy-12.c
index c60cef0cd4f8..b92f0f976abb 100644
--- a/gcc/testsuite/gcc.target/i386/memcpy-strategy-12.c
+++ b/gcc/testsuite/gcc.target/i386/memcpy-strategy-12.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mtune=generic -mno-sse -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm" } */
+/* { dg-options "-O2 -mtune=generic -mno-sse" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-1.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-1.c
index 06e3892841e1..d8d3161cf251 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-1.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-1.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" 
} */
+/* { dg-options "-O2 -march=x86-64 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-10.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-10.c
index 36a924d6079e..040e2937aee6 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-10.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-10.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mno-sse -fasynchronous-unwind-tables -fdwarf2-cfi-asm 
-mmemset-strategy=unrolled_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-options "-O2 -mno-sse 
-mmemset-strategy=unrolled_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-11.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-11.c
index 4868e563bddb..df479c5ca2f9 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-11.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-11.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mno-sse -fasynchronous-unwind-tables -fdwarf2-cfi-asm 
-mmemset-strategy=unrolled_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-options "-O2 -mno-sse 
-mmemset-strategy=unrolled_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-12.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-12.c
index 91128977fadf..9ea0951f5e75 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-12.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-12.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mno-sse -fasynchronous-unwind-tables -fdwarf2-cfi-asm 
-mmemset-strategy=unrolled_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-options "-O2 -mno-sse 
-mmemset-strategy=unrolled_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-13.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-13.c
index 69ec6c6472cf..2553d93e51b8 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-13.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-13.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" 
} */
+/* { dg-options "-O2 -march=x86-64 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-14.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-14.c
index 209cd679f741..f3e8cd182e89 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-14.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-14.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-options "-O2 -march=x86-64 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-15.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-15.c
index d19188f1f457..05c32b09b1f0 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-15.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-15.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64-v3 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-options "-O2 -march=x86-64-v3 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-16.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-16.c
index 539714c2b3d0..dc8f5246f728 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-16.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-16.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64-v4 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-options "-O2 -march=x86-64-v4 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-17.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-17.c
index f58cb28cff07..60885a4e7848 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-17.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-17.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" 
} */
+/* { dg-options "-O2 -march=x86-64 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-18.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-18.c
index a127028d472d..ec2fabfe6b1b 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-18.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-18.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" 
} */
+/* { dg-options "-O2 -march=x86-64 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-19.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-19.c
index 8dd5ae6da4a5..65d8154ae051 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-19.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-19.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" 
} */
+/* { dg-options "-O2 -march=x86-64 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-2.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-2.c
index 3b84b29bfd91..fa5840baa3f2 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-2.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-2.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64-v3 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" 
} */
+/* { dg-options "-O2 -march=x86-64-v3 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-20.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-20.c
index b8b9cb7a4ab8..9093a23f9f79 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-20.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-20.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" 
} */
+/* { dg-options "-O2 -march=x86-64 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-21.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-21.c
index 3c7bb7c4fef9..31113f977001 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-21.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-21.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" 
} */
+/* { dg-options "-O2 -march=x86-64 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-22.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-22.c
index 96a21c877ed2..41d6008997c2 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-22.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-22.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target { ! ia32 } } } */
-/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=rep_8byte:8192:align,libcall:-1:noalign" } */
+/* { dg-options "-O2 -march=x86-64 
-mmemset-strategy=rep_8byte:8192:align,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-23.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-23.c
index f3f5d8053016..547e1a7eea5e 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-23.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-23.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -minline-all-stringops 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-options "-O2 -march=x86-64 -minline-all-stringops 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-3.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-3.c
index faa47ca34317..781e6d56b059 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-3.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-3.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64-v4 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" 
} */
+/* { dg-options "-O2 -march=x86-64-v4 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-4.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-4.c
index dc3aa57b2a56..2569db46b4de 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-4.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-4.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-options "-O2 -march=x86-64 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-5.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-5.c
index a324f8e5b0ea..e2114b4f4928 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-5.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-5.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64-v3 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-options "-O2 -march=x86-64-v3 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-6.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-6.c
index 64e75895232f..33cea66bfc18 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-6.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-6.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64-v4 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-options "-O2 -march=x86-64-v4 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-7.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-7.c
index 022f6f9a1eb6..04043dfc4c78 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-7.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-7.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-options "-O2 -march=x86-64 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-8.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-8.c
index 5254e21fe176..1e5e1024abf1 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-8.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-8.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64-v3 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-options "-O2 -march=x86-64-v3 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-9.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-9.c
index 1719de610cac..c6f0b776d088 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-9.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-9.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64-v4 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-options "-O2 -march=x86-64-v4 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign 
-minline-all-stringops" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr70308-1a.c 
b/gcc/testsuite/gcc.target/i386/memset-pr70308-1a.c
index 5cc4eee11920..4cba4745700b 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr70308-1a.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr70308-1a.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm" } */
+/* { dg-options "-O2 -march=x86-64" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr70308-1b.c 
b/gcc/testsuite/gcc.target/i386/memset-pr70308-1b.c
index 15996ea4e2cd..425a1232f272 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr70308-1b.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr70308-1b.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm -fomit-frame-pointer -DUSE_SCANF" } */
+/* { dg-options "-O2 -march=x86-64 -fomit-frame-pointer -DUSE_SCANF" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-strategy-10.c 
b/gcc/testsuite/gcc.target/i386/memset-strategy-10.c
index b4a93a7ceecb..4a6987524924 100644
--- a/gcc/testsuite/gcc.target/i386/memset-strategy-10.c
+++ b/gcc/testsuite/gcc.target/i386/memset-strategy-10.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-Os -march=x86-64 -mstringop-strategy=vector_loop 
-fasynchronous-unwind-tables -fdwarf2-cfi-asm" } */
+/* { dg-options "-Os -march=x86-64 -mstringop-strategy=vector_loop" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-strategy-13.c 
b/gcc/testsuite/gcc.target/i386/memset-strategy-13.c
index be6761017934..925874cdf9d4 100644
--- a/gcc/testsuite/gcc.target/i386/memset-strategy-13.c
+++ b/gcc/testsuite/gcc.target/i386/memset-strategy-13.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-Os -mno-sse -mstringop-strategy=unrolled_loop 
-fasynchronous-unwind-tables -fdwarf2-cfi-asm" } */
+/* { dg-options "-Os -mno-sse -mstringop-strategy=unrolled_loop" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-strategy-25.c 
b/gcc/testsuite/gcc.target/i386/memset-strategy-25.c
index 7bd5d43c8cd5..4e2c2df41c4b 100644
--- a/gcc/testsuite/gcc.target/i386/memset-strategy-25.c
+++ b/gcc/testsuite/gcc.target/i386/memset-strategy-25.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mtune=generic -mno-sse -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm" } */
+/* { dg-options "-O2 -mtune=generic -mno-sse" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-strategy-28.c 
b/gcc/testsuite/gcc.target/i386/memset-strategy-28.c
index eef113fa366b..5621d32f0427 100644
--- a/gcc/testsuite/gcc.target/i386/memset-strategy-28.c
+++ b/gcc/testsuite/gcc.target/i386/memset-strategy-28.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mtune=generic -mno-sse -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm" } */
+/* { dg-options "-O2 -mtune=generic -mno-sse" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-strategy-29.c 
b/gcc/testsuite/gcc.target/i386/memset-strategy-29.c
index a33bf9232c09..e8934f131d1c 100644
--- a/gcc/testsuite/gcc.target/i386/memset-strategy-29.c
+++ b/gcc/testsuite/gcc.target/i386/memset-strategy-29.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mtune=generic -mno-sse -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm" } */
+/* { dg-options "-O2 -mtune=generic -mno-sse" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/memset-strategy-30.c 
b/gcc/testsuite/gcc.target/i386/memset-strategy-30.c
index f3912f8c03b8..3a0e14a52b3b 100644
--- a/gcc/testsuite/gcc.target/i386/memset-strategy-30.c
+++ b/gcc/testsuite/gcc.target/i386/memset-strategy-30.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mtune=generic -mno-sse -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm" } */
+/* { dg-options "-O2 -mtune=generic -mno-sse" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
 
diff --git a/gcc/testsuite/gcc.target/i386/pr111673.c 
b/gcc/testsuite/gcc.target/i386/pr111673.c
index 0f08ba89ebda..6b30d46ee076 100644
--- a/gcc/testsuite/gcc.target/i386/pr111673.c
+++ b/gcc/testsuite/gcc.target/i386/pr111673.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target { ! ia32 } } } */
-/* { dg-options "-O2 -fdump-rtl-pro_and_epilogue -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm" } */
+/* { dg-options "-O2 -fdump-rtl-pro_and_epilogue" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.}  
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/pr120936-1.c 
b/gcc/testsuite/gcc.target/i386/pr120936-1.c
index a20680d85483..7e2749eaeaeb 100644
--- a/gcc/testsuite/gcc.target/i386/pr120936-1.c
+++ b/gcc/testsuite/gcc.target/i386/pr120936-1.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target fpic } } */
 /* { dg-options "-O2 -pg -mno-fentry -fno-pic -fno-shrink-wrap" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.} } 
} */
 
diff --git a/gcc/testsuite/gcc.target/i386/pr120936-11.c 
b/gcc/testsuite/gcc.target/i386/pr120936-11.c
index 3e39dfe0d374..0a644df4b62b 100644
--- a/gcc/testsuite/gcc.target/i386/pr120936-11.c
+++ b/gcc/testsuite/gcc.target/i386/pr120936-11.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target { fpic && lp64 } } } */
 /* { dg-options "-O2 -mrecord-mcount -mcmodel=large -pg -mno-fentry -fno-pic 
-fno-shrink-wrap" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } 
{^(1|\t?\.)} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/pr120936-2.c 
b/gcc/testsuite/gcc.target/i386/pr120936-2.c
index 083565801651..770b8bcfaec0 100644
--- a/gcc/testsuite/gcc.target/i386/pr120936-2.c
+++ b/gcc/testsuite/gcc.target/i386/pr120936-2.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target fpic } } */
 /* { dg-options "-O2 -pg -mno-fentry -fpic -fno-shrink-wrap" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.} } 
} */
 
diff --git a/gcc/testsuite/gcc.target/i386/pr120936-4.c 
b/gcc/testsuite/gcc.target/i386/pr120936-4.c
index 2420f0ba0b40..420efa3cb0e1 100644
--- a/gcc/testsuite/gcc.target/i386/pr120936-4.c
+++ b/gcc/testsuite/gcc.target/i386/pr120936-4.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target fpic } } */
 /* { dg-options "-O2 -pg -mno-fentry -mrecord-mcount -fno-pic 
-fno-shrink-wrap" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } 
{^(1|\t?\.)} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/pr120936-5.c 
b/gcc/testsuite/gcc.target/i386/pr120936-5.c
index 20ecd37790d5..33ccb2da24cd 100644
--- a/gcc/testsuite/gcc.target/i386/pr120936-5.c
+++ b/gcc/testsuite/gcc.target/i386/pr120936-5.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target fpic } } */
 /* { dg-options "-O2 -pg -mrecord-mcount -mno-fentry -fpic -fno-shrink-wrap" } 
*/
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } 
{^(1|\t?\.)} } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/pr120936-9.c 
b/gcc/testsuite/gcc.target/i386/pr120936-9.c
index 3f4b38724e44..28e2b8d1d61a 100644
--- a/gcc/testsuite/gcc.target/i386/pr120936-9.c
+++ b/gcc/testsuite/gcc.target/i386/pr120936-9.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target { fpic && lp64 } } } */
 /* { dg-options "-O2 -mcmodel=large -pg -mno-fentry -fno-pic -fno-shrink-wrap" 
} */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.} } 
} */
 
diff --git a/gcc/testsuite/gcc.target/i386/pr82142a.c 
b/gcc/testsuite/gcc.target/i386/pr82142a.c
index a536150267c5..d0d6e522b033 100644
--- a/gcc/testsuite/gcc.target/i386/pr82142a.c
+++ b/gcc/testsuite/gcc.target/i386/pr82142a.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target { ! ia32 } } } */
-/* { dg-options "-O2 -mno-avx -msse2 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm" } */
+/* { dg-options "-O2 -mno-avx -msse2" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.}  
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/pr82142b.c 
b/gcc/testsuite/gcc.target/i386/pr82142b.c
index d18b7c466513..d18b7b55a508 100644
--- a/gcc/testsuite/gcc.target/i386/pr82142b.c
+++ b/gcc/testsuite/gcc.target/i386/pr82142b.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target ia32 } } */
-/* { dg-options "-O2 -mno-avx -msse2 -mno-stackrealign 
-fasynchronous-unwind-tables -fdwarf2-cfi-asm" } */
+/* { dg-options "-O2 -mno-avx -msse2 -mno-stackrealign" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.}  
} } */
 
diff --git a/gcc/testsuite/gcc.target/i386/pr92080-17.c 
b/gcc/testsuite/gcc.target/i386/pr92080-17.c
index c1d5f426c4de..5b2594bc179b 100644
--- a/gcc/testsuite/gcc.target/i386/pr92080-17.c
+++ b/gcc/testsuite/gcc.target/i386/pr92080-17.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64-v3 -fasynchronous-unwind-tables 
-fdwarf2-cfi-asm" } */
+/* { dg-options "-O2 -march=x86-64-v3" } */
+/* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
 /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.}  } } */
 
diff --git a/gcc/testsuite/lib/target-supports.exp 
b/gcc/testsuite/lib/target-supports.exp
index b00e11e2ae52..c0b8026f8e72 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -981,6 +981,18 @@ proc add_options_for_tls { flags } {
     return $flags
 }
 
+# Add to FLAGS all the target-specific flags needed to use 
check-function-bodies.
+
+proc add_options_for_check_function_bodies { flags } {
+    if { [istarget i?86-*-solaris2*] || [istarget x86_64-*-solaris2*] } {
+       # check-function-bodies relies on the .cfi_* directives, which are
+       # off on Solaris/x86 with as and ld.  Similarly it also expects
+       # the .LFB/.LFE labels, which aren't emitted for 32-bit.
+       return "-fdwarf2-cfi-asm -fasynchronous-unwind-tables $flags "
+    }
+    return $flags
+}
+
 # Return 1 if indirect jumps are supported, 0 otherwise.
 
 proc check_effective_target_indirect_jumps {} {

Reply via email to