This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch] New c-torture testcases.
- To: gcc-patches at gcc dot gnu dot org
- Subject: [patch] New c-torture testcases.
- From: Diego Novillo <dnovillo at redhat dot com>
- Date: Mon, 21 May 2001 00:19:06 -0400
- Organization: Red Hat Canada
These three tests came up on a new port that will be contributed
in the near future. Maybe they're also useful in other ports.
They have been approved by Geoff Keating. Unless someone objects,
I will be checking them in the trunk over the next few days.
Diego.
2001-05-21 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.
Index: gcc.c-torture/compile/20010518-2.c
===================================================================
RCS file: 20010518-2.c
diff -N 20010518-2.c
*** /dev/null Tue May 5 13:32:27 1998
--- 20010518-2.c Sun May 20 21:17:10 2001
***************
*** 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';
+ }
Index: gcc.c-torture/execute/20010518-1.c
===================================================================
RCS file: 20010518-1.c
diff -N 20010518-1.c
*** /dev/null Tue May 5 13:32:27 1998
--- 20010518-1.c Sun May 20 21:17:10 2001
***************
*** 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);
+ }
Index: gcc.c-torture/execute/20010518-2.c
===================================================================
RCS file: 20010518-2.c
diff -N 20010518-2.c
*** /dev/null Tue May 5 13:32:27 1998
--- 20010518-2.c Sun May 20 21:17:10 2001
***************
*** 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);
+ }