diff options
author | Diego Novillo <dnovillo@redhat.com> | 2001-05-25 19:38:52 +0000 |
---|---|---|
committer | Diego Novillo <dnovillo@gcc.gnu.org> | 2001-05-25 15:38:52 -0400 |
commit | 47cf9247396eb05c22bceacaf1921c96a350d68c (patch) | |
tree | 7c4d73995e76bcb4e8adde5666ee54860167a269 | |
parent | 827ae6cf7ce89a0171d7f3e1eba99385b2ba9e73 (diff) | |
download | gcc-47cf9247396eb05c22bceacaf1921c96a350d68c.zip gcc-47cf9247396eb05c22bceacaf1921c96a350d68c.tar.gz gcc-47cf9247396eb05c22bceacaf1921c96a350d68c.tar.bz2 |
20010518-2.c: New file.
2001-05-25 Diego Novillo <dnovillo@redhat.com>
* gcc.c-torture/compile/20010518-2.c: New file.
* gcc.c-torture/execute/20010518-1.c: New file.
* gcc.c-torture/execute/20010518-2.c: New file.
From-SVN: r42580
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20010518-2.c | 13 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/20010518-1.c | 28 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/20010518-2.c | 38 |
4 files changed, 85 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5ce646c..4495a34 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2001-05-25 Diego Novillo <dnovillo@redhat.com> + + * gcc.c-torture/compile/20010518-2.c: New file. + * gcc.c-torture/execute/20010518-1.c: New file. + * gcc.c-torture/execute/20010518-2.c: New file. + 2001-05-25 Joseph S. Myers <jsm28@cam.ac.uk> * gcc.dg/c90-arraydecl-1.c, gcc.dg/c99-arraydecl-1.c: New tests. diff --git a/gcc/testsuite/gcc.c-torture/compile/20010518-2.c b/gcc/testsuite/gcc.c-torture/compile/20010518-2.c new file mode 100644 index 0000000..aa8ce34 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/20010518-2.c @@ -0,0 +1,13 @@ +/* Large static storage. */ + +#include <limits.h> + +static volatile char chars_1[INT_MAX / 2]; +static volatile char chars_2[1]; + +int +foo (void) +{ + chars_1[10] = 'y'; + chars_2[0] = 'x'; +} diff --git a/gcc/testsuite/gcc.c-torture/execute/20010518-1.c b/gcc/testsuite/gcc.c-torture/execute/20010518-1.c new file mode 100644 index 0000000..94b2d8f --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20010518-1.c @@ -0,0 +1,28 @@ +/* Leaf functions with many arguments. */ + +int +add (int a, + int b, + int c, + int d, + int e, + int f, + int g, + int h, + int i, + int j, + int k, + int l, + int m) +{ + return a+b+c+d+e+f+g+h+i+j+k+l+m; +} + +int +main(void) +{ + if (add (1,2,3,4,5,6,7,8,9,10,11,12,13) != 91) + abort (); + + exit (0); +} diff --git a/gcc/testsuite/gcc.c-torture/execute/20010518-2.c b/gcc/testsuite/gcc.c-torture/execute/20010518-2.c new file mode 100644 index 0000000..1990f8e --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20010518-2.c @@ -0,0 +1,38 @@ +/* Mis-aligned packed structures. */ + +typedef struct +{ + char b0; + char b1; + char b2; + char b3; + char b4; + char b5; +} __attribute__ ((packed)) b_struct; + + +typedef struct +{ + short a; + long b; + short c; + short d; + b_struct e; +} __attribute__ ((packed)) a_struct; + + +int +main(void) +{ + volatile a_struct *a; + volatile a_struct b; + + a = &b; + *a = (a_struct){1,2,3,4}; + a->e.b4 = 'c'; + + if (a->a != 1 || a->b != 2 || a->c != 3 || a->d != 4 || a->e.b4 != 'c') + abort (); + + exit (0); +} |