+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.
--- /dev/null
+/* 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';
+}
--- /dev/null
+/* 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);
+}
--- /dev/null
+/* 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);
+}