summaryrefslogtreecommitdiffstats
path: root/clang/test/Sema/struct-packed-align.c
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2008-02-16 19:51:36 +0000
committerAnders Carlsson <andersca@mac.com>2008-02-16 19:51:36 +0000
commitf13b1efa75729531277cb995883e88bcdea2899a (patch)
tree15ea84a5396d0758a9e1ab6c58a182c3066eecb4 /clang/test/Sema/struct-packed-align.c
parent6e3ace520537630f49158343c2ce886ff266b502 (diff)
downloadbcm5719-llvm-f13b1efa75729531277cb995883e88bcdea2899a.tar.gz
bcm5719-llvm-f13b1efa75729531277cb995883e88bcdea2899a.zip
Add more tests
llvm-svn: 47217
Diffstat (limited to 'clang/test/Sema/struct-packed-align.c')
-rw-r--r--clang/test/Sema/struct-packed-align.c43
1 files changed, 35 insertions, 8 deletions
diff --git a/clang/test/Sema/struct-packed-align.c b/clang/test/Sema/struct-packed-align.c
index 23885a54614..f7183435639 100644
--- a/clang/test/Sema/struct-packed-align.c
+++ b/clang/test/Sema/struct-packed-align.c
@@ -1,5 +1,6 @@
// RUN: clang %s -fsyntax-only -verify
+// Packed structs.
struct s {
char a;
int b __attribute__((packed));
@@ -7,6 +8,9 @@ struct s {
int d;
};
+extern int a1[sizeof(struct s) == 12 ? 1 : -1];
+extern int a2[__alignof(struct s) == 4 ? 1 : -1];
+
struct __attribute__((packed)) packed_s {
char a;
int b __attribute__((packed));
@@ -14,24 +18,47 @@ struct __attribute__((packed)) packed_s {
int d;
};
+extern int b1[sizeof(struct packed_s) == 10 ? 1 : -1];
+extern int b2[__alignof(struct packed_s) == 1 ? 1 : -1];
+
struct fas {
char a;
int b[];
};
+extern int c1[sizeof(struct fas) == 4 ? 1 : -1];
+extern int c2[__alignof(struct fas) == 4 ? 1 : -1];
+
struct __attribute__((packed)) packed_fas {
char a;
int b[];
};
-extern int a1[sizeof(struct s) == 12 ? 1 : -1];
-extern int a2[__alignof(struct s) == 4 ? 1 : -1];
+extern int d1[sizeof(struct packed_fas) == 1 ? 1 : -1];
+extern int d2[__alignof(struct packed_fas) == 1 ? 1 : -1];
-extern int b1[sizeof(struct packed_s) == 10 ? 1 : -1];
-extern int b2[__alignof(struct packed_s) == 1 ? 1 : -1];
+// Alignment
-extern int c1[sizeof(struct fas) == 4 ? 1 : -1];
-extern int c2[__alignof(struct fas) == 4 ? 1 : -1];
+struct __attribute__((aligned(8))) as1 {
+ char c;
+};
-extern int d1[sizeof(struct packed_fas) == 1 ? 1 : -1];
-extern int d2[__alignof(struct packed_fas) == 1 ? 1 : -1];
+extern int e1[sizeof(struct as1) == 8 ? 1 : -1];
+extern int e2[__alignof(struct as1) == 8 ? 1 : -1];
+
+struct as2 {
+ char c;
+ int __attribute__((aligned(8))) a;
+};
+
+extern int f1[sizeof(struct as2) == 16 ? 1 : -1];
+extern int f2[__alignof(struct as2) == 8 ? 1 : -1];
+
+struct __attribute__((packed)) as3 {
+ char c;
+ int a;
+ int __attribute__((aligned(8))) b;
+};
+
+extern int g1[sizeof(struct as3) == 16 ? 1 : -1];
+extern int g2[__alignof(struct as3) == 8 ? 1 : -1];
OpenPOWER on IntegriCloud