diff options
author | Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> | 1999-11-18 08:56:12 +0100 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-11-18 00:56:12 -0700 |
commit | ee7602056eb3f0156d9c6b5eb2a8c9e1402997d2 (patch) | |
tree | 3777829392e7595fd2369bfdd5b4c1cc9df59f68 | |
parent | 8cb9ab4b7e19dec00113d86ea6aa4369617430e4 (diff) | |
download | gcc-ee7602056eb3f0156d9c6b5eb2a8c9e1402997d2.zip gcc-ee7602056eb3f0156d9c6b5eb2a8c9e1402997d2.tar.gz gcc-ee7602056eb3f0156d9c6b5eb2a8c9e1402997d2.tar.bz2 |
* gcc.c-torture/execute/991118-1.c: New test.
From-SVN: r30570
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/991118-1.c | 45 |
2 files changed, 49 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index eef72d6..5a05f13 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> + + * gcc.c-torture/execute/991118-1.c: New test. + 1999-11-16 Geoffrey Keating <geoffk@cygnus.com> * g77.f-torture/execute/u77-test.f (wd): Allow for longer diff --git a/gcc/testsuite/gcc.c-torture/execute/991118-1.c b/gcc/testsuite/gcc.c-torture/execute/991118-1.c new file mode 100644 index 0000000..ea769af --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/991118-1.c @@ -0,0 +1,45 @@ +struct tmp +{ + long long int pad : 12; + long long int field : 52; +}; + +struct tmp2 +{ + long long int field : 52; + long long int pad : 12; +}; + +struct tmp +sub (struct tmp tmp) +{ + tmp.field ^= 0x0008765412345678LL; + return tmp; +} + +struct tmp2 +sub2 (struct tmp2 tmp2) +{ + tmp2.field ^= 0x0008765412345678LL; + return tmp2; +} + +struct tmp tmp = {0x123, 0x123456789ABCDLL}; +struct tmp2 tmp2 = {0x123456789ABCDLL, 0x123}; + +main() +{ + + if (sizeof (long long) != 8) + exit (0); + + tmp = sub (tmp); + tmp2 = sub2 (tmp2); + + if (tmp.pad != 0x123 || tmp.field != 0xFFF9551175BDFDB5LL) + abort (); + if (tmp2.pad != 0x123 || tmp2.field != 0xFFF9551175BDFDB5LL) + abort (); + exit (0); +} + |