https://gcc.gnu.org/g:02e43e5596ee6a4d03eecaa48197280c4eb6a78f
commit r15-1027-g02e43e5596ee6a4d03eecaa48197280c4eb6a78f Author: Thomas Schwinge <tschwi...@baylibre.com> Date: Wed Apr 24 11:24:39 2024 +0200 Add 'c-c++-common/initpri1-split.c': 'c-c++-common/initpri1.c' split into separate translation units gcc/testsuite/ * c-c++-common/initpri1.c: Split into... * c-c++-common/initpri1_part_c1.c: ... this, and... * c-c++-common/initpri1_part_c2.c: ... this, and... * c-c++-common/initpri1_part_c3.c: ... this, and... * c-c++-common/initpri1_part_cd4.c: ... this, and... * c-c++-common/initpri1_part_d1.c: ... this, and... * c-c++-common/initpri1_part_d2.c: ... this, and... * c-c++-common/initpri1_part_d3.c: ... this, and... * c-c++-common/initpri1_part_main.c: ... this part. * c-c++-common/initpri1-split.c: New. Diff: --- gcc/testsuite/c-c++-common/initpri1-split.c | 3 + gcc/testsuite/c-c++-common/initpri1.c | 73 +++++-------------------- gcc/testsuite/c-c++-common/initpri1_part_c1.c | 11 ++++ gcc/testsuite/c-c++-common/initpri1_part_c2.c | 11 ++++ gcc/testsuite/c-c++-common/initpri1_part_c3.c | 11 ++++ gcc/testsuite/c-c++-common/initpri1_part_cd4.c | 13 +++++ gcc/testsuite/c-c++-common/initpri1_part_d1.c | 11 ++++ gcc/testsuite/c-c++-common/initpri1_part_d2.c | 11 ++++ gcc/testsuite/c-c++-common/initpri1_part_d3.c | 14 +++++ gcc/testsuite/c-c++-common/initpri1_part_main.c | 13 +++++ 10 files changed, 113 insertions(+), 58 deletions(-) diff --git a/gcc/testsuite/c-c++-common/initpri1-split.c b/gcc/testsuite/c-c++-common/initpri1-split.c new file mode 100644 index 00000000000..11755ee9f6a --- /dev/null +++ b/gcc/testsuite/c-c++-common/initpri1-split.c @@ -0,0 +1,3 @@ +/* { dg-do run { target init_priority } } */ +/* Via the magic string "-std=*++" indicate that testing one (the default) C++ standard is sufficient. */ +/* { dg-additional-sources {initpri1_part_c1.c initpri1_part_c2.c initpri1_part_c3.c initpri1_part_d1.c initpri1_part_d2.c initpri1_part_d3.c initpri1_part_cd4.c initpri1_part_main.c} } */ diff --git a/gcc/testsuite/c-c++-common/initpri1.c b/gcc/testsuite/c-c++-common/initpri1.c index 387f2a39658..f50137a489b 100644 --- a/gcc/testsuite/c-c++-common/initpri1.c +++ b/gcc/testsuite/c-c++-common/initpri1.c @@ -1,61 +1,18 @@ /* { dg-do run { target init_priority } } */ /* Via the magic string "-std=*++" indicate that testing one (the default) C++ standard is sufficient. */ -int i; -int j; - -void c1() __attribute__((constructor (500))); -void c2() __attribute__((constructor (700))); -void c3() __attribute__((constructor (600))); - -void c1() { - if (i++ != 0) - __builtin_abort (); -} - -void c2() { - if (i++ != 2) - __builtin_abort (); -} - -void c3() { - if (i++ != 1) - __builtin_abort (); -} - -void d1() __attribute__((destructor (500))); -void d2() __attribute__((destructor (700))); -void d3() __attribute__((destructor (600))); - -void d1() { - if (--i != 0) - __builtin_abort (); -} - -void d2() { - if (--i != 2) - __builtin_abort (); -} - -void d3() { - if (j != 2) - __builtin_abort (); - if (--i != 1) - __builtin_abort (); -} - -void cd4() __attribute__((constructor (800), destructor (800))); - -void cd4() { - if (i != 3) - __builtin_abort (); - ++j; -} - -int main () { - if (i != 3) - return 1; - if (j != 1) - __builtin_abort (); - return 0; -} +#include "initpri1_part_c1.c" + +#include "initpri1_part_c2.c" + +#include "initpri1_part_c3.c" + +#include "initpri1_part_d1.c" + +#include "initpri1_part_d2.c" + +#include "initpri1_part_d3.c" + +#include "initpri1_part_cd4.c" + +#include "initpri1_part_main.c" diff --git a/gcc/testsuite/c-c++-common/initpri1_part_c1.c b/gcc/testsuite/c-c++-common/initpri1_part_c1.c new file mode 100644 index 00000000000..0f85a2e6cb1 --- /dev/null +++ b/gcc/testsuite/c-c++-common/initpri1_part_c1.c @@ -0,0 +1,11 @@ +/* { dg-skip-if part { *-*-* } } */ +/* Via the magic string "-std=*++" indicate that testing one (the default) C++ standard is sufficient. */ + +extern int i; + +void c1() __attribute__((constructor (500))); + +void c1() { + if (i++ != 0) + __builtin_abort (); +} diff --git a/gcc/testsuite/c-c++-common/initpri1_part_c2.c b/gcc/testsuite/c-c++-common/initpri1_part_c2.c new file mode 100644 index 00000000000..e8c556aab17 --- /dev/null +++ b/gcc/testsuite/c-c++-common/initpri1_part_c2.c @@ -0,0 +1,11 @@ +/* { dg-skip-if part { *-*-* } } */ +/* Via the magic string "-std=*++" indicate that testing one (the default) C++ standard is sufficient. */ + +extern int i; + +void c2() __attribute__((constructor (700))); + +void c2() { + if (i++ != 2) + __builtin_abort (); +} diff --git a/gcc/testsuite/c-c++-common/initpri1_part_c3.c b/gcc/testsuite/c-c++-common/initpri1_part_c3.c new file mode 100644 index 00000000000..70880882ce3 --- /dev/null +++ b/gcc/testsuite/c-c++-common/initpri1_part_c3.c @@ -0,0 +1,11 @@ +/* { dg-skip-if part { *-*-* } } */ +/* Via the magic string "-std=*++" indicate that testing one (the default) C++ standard is sufficient. */ + +extern int i; + +void c3() __attribute__((constructor (600))); + +void c3() { + if (i++ != 1) + __builtin_abort (); +} diff --git a/gcc/testsuite/c-c++-common/initpri1_part_cd4.c b/gcc/testsuite/c-c++-common/initpri1_part_cd4.c new file mode 100644 index 00000000000..b67ff90d9fe --- /dev/null +++ b/gcc/testsuite/c-c++-common/initpri1_part_cd4.c @@ -0,0 +1,13 @@ +/* { dg-skip-if part { *-*-* } } */ +/* Via the magic string "-std=*++" indicate that testing one (the default) C++ standard is sufficient. */ + +extern int i; +extern int j; + +void cd4() __attribute__((constructor (800), destructor (800))); + +void cd4() { + if (i != 3) + __builtin_abort (); + ++j; +} diff --git a/gcc/testsuite/c-c++-common/initpri1_part_d1.c b/gcc/testsuite/c-c++-common/initpri1_part_d1.c new file mode 100644 index 00000000000..099df37e97c --- /dev/null +++ b/gcc/testsuite/c-c++-common/initpri1_part_d1.c @@ -0,0 +1,11 @@ +/* { dg-skip-if part { *-*-* } } */ +/* Via the magic string "-std=*++" indicate that testing one (the default) C++ standard is sufficient. */ + +extern int i; + +void d1() __attribute__((destructor (500))); + +void d1() { + if (--i != 0) + __builtin_abort (); +} diff --git a/gcc/testsuite/c-c++-common/initpri1_part_d2.c b/gcc/testsuite/c-c++-common/initpri1_part_d2.c new file mode 100644 index 00000000000..258cbbc495f --- /dev/null +++ b/gcc/testsuite/c-c++-common/initpri1_part_d2.c @@ -0,0 +1,11 @@ +/* { dg-skip-if part { *-*-* } } */ +/* Via the magic string "-std=*++" indicate that testing one (the default) C++ standard is sufficient. */ + +extern int i; + +void d2() __attribute__((destructor (700))); + +void d2() { + if (--i != 2) + __builtin_abort (); +} diff --git a/gcc/testsuite/c-c++-common/initpri1_part_d3.c b/gcc/testsuite/c-c++-common/initpri1_part_d3.c new file mode 100644 index 00000000000..1242d411b07 --- /dev/null +++ b/gcc/testsuite/c-c++-common/initpri1_part_d3.c @@ -0,0 +1,14 @@ +/* { dg-skip-if part { *-*-* } } */ +/* Via the magic string "-std=*++" indicate that testing one (the default) C++ standard is sufficient. */ + +extern int i; +extern int j; + +void d3() __attribute__((destructor (600))); + +void d3() { + if (j != 2) + __builtin_abort (); + if (--i != 1) + __builtin_abort (); +} diff --git a/gcc/testsuite/c-c++-common/initpri1_part_main.c b/gcc/testsuite/c-c++-common/initpri1_part_main.c new file mode 100644 index 00000000000..bff58d75e68 --- /dev/null +++ b/gcc/testsuite/c-c++-common/initpri1_part_main.c @@ -0,0 +1,13 @@ +/* { dg-skip-if part { *-*-* } } */ +/* Via the magic string "-std=*++" indicate that testing one (the default) C++ standard is sufficient. */ + +int i; +int j; + +int main () { + if (i != 3) + return 1; + if (j != 1) + __builtin_abort (); + return 0; +}