]> git.ipfire.org Git - thirdparty/gcc.git/commit
testsuite: i386: Handle check-function-bodies options using dg-add-options
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Tue, 25 Nov 2025 08:18:13 +0000 (09:18 +0100)
committerRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Tue, 25 Nov 2025 08:18:13 +0000 (09:18 +0100)
commitc99198d5185e60cf2dddcea2a56600a482bf8bc2
treee773df5d4f8bac2a0e0e207d7eb2ba1c4b31b012
parent843f1ac16028a94cae33b390a0ed8da29e65ae12
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  <ro@CeBiTec.Uni-Bielefeld.DE>

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