diff options
author | Anders Carlsson <andersca@mac.com> | 2008-02-16 19:51:36 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2008-02-16 19:51:36 +0000 |
commit | f13b1efa75729531277cb995883e88bcdea2899a (patch) | |
tree | 15ea84a5396d0758a9e1ab6c58a182c3066eecb4 /clang/test/Sema/struct-packed-align.c | |
parent | 6e3ace520537630f49158343c2ce886ff266b502 (diff) | |
download | bcm5719-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.c | 43 |
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]; |