aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20010904-1.c11
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20010904-2.c11
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010904-1.c b/gcc/testsuite/gcc.c-torture/execute/20010904-1.c
new file mode 100644
index 00000000000..92b258b5202
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20010904-1.c
@@ -0,0 +1,11 @@
+typedef struct x { int a; int b; } __attribute__((aligned(32))) X;
+typedef struct y { X x[32]; int c; } Y;
+
+Y y[2];
+
+int main(void)
+{
+ if (((char *)&y[1] - (char *)&y[0]) & 31)
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010904-2.c b/gcc/testsuite/gcc.c-torture/execute/20010904-2.c
new file mode 100644
index 00000000000..cbe49806c60
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20010904-2.c
@@ -0,0 +1,11 @@
+typedef struct x { int a; int b; } __attribute__((aligned(32))) X;
+typedef struct y { X x; X y[31]; int c; } Y;
+
+Y y[2];
+
+int main(void)
+{
+ if (((char *)&y[1] - (char *)&y[0]) & 31)
+ abort ();
+ exit (0);
+}