diff options
author | Richard Henderson <rth@redhat.com> | 2004-07-29 11:35:54 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2004-07-29 11:35:54 -0700 |
commit | 4b9a3b371b16c88a732bca139e67f5591a8c64f2 (patch) | |
tree | 7a070a8e7cffc57affa59131bafca9dccee1974d | |
parent | b3b7f0c9df7e6952c7d8b26770b035c23722c746 (diff) | |
download | gcc-4b9a3b371b16c88a732bca139e67f5591a8c64f2.zip gcc-4b9a3b371b16c88a732bca139e67f5591a8c64f2.tar.gz gcc-4b9a3b371b16c88a732bca139e67f5591a8c64f2.tar.bz2 |
stmtexpr2.C (alt1): Rename from expected.
* g++.dg/ext/stmtexpr2.C (alt1): Rename from expected.
(alt2, which): New.
(Check): Accept either alternative.
From-SVN: r85313
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/ext/stmtexpr2.C | 22 |
2 files changed, 21 insertions, 5 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b82965c..c0b972c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -2,6 +2,10 @@ * g++.dg/template/sizeof8.C: Don't assume 32bit pointers. + * g++.dg/ext/stmtexpr2.C (alt1): Rename from expected. + (alt2, which): New. + (Check): Accept either alternative. + 2004-07-29 Mark Mitchell <mark@codesourcery.com> * g++.dg/abi/inline1.C: New test. diff --git a/gcc/testsuite/g++.dg/ext/stmtexpr2.C b/gcc/testsuite/g++.dg/ext/stmtexpr2.C index 7294577..5301103 100644 --- a/gcc/testsuite/g++.dg/ext/stmtexpr2.C +++ b/gcc/testsuite/g++.dg/ext/stmtexpr2.C @@ -4,19 +4,31 @@ extern "C" int printf (char const *, ...); extern "C" void abort (); -static unsigned int expected[] = { - 11, 10, 21, 110, 111, 121 -}; +// There are two alternate legal renderings. +static unsigned int alt1[] = { 11, 10, 21, 110, 111, 121 }; +static unsigned int alt2[] = { 10, 11, 21, 111, 110, 121 }; + static unsigned int pointer = 0; +static unsigned int *which; static void Check (unsigned t, unsigned i, void const *ptr, char const *name) { printf ("%d %d %p %s\n", t, i, ptr, name); - if (pointer > sizeof(expected)/sizeof(expected[0])) + if (pointer > sizeof(alt1)/sizeof(alt1[0])) abort (); - if (t + i != expected[pointer++]) + if (pointer == 0) + { + if (t + i == alt1[0]) + which = &alt1[0]; + else if (t + i == alt2[0]) + which = &alt2[0]; + else + abort (); + } + else if (t + i != which[pointer]) abort (); + pointer++; } struct A |