summaryrefslogtreecommitdiffstats
path: root/clang/test/Sema/align-x86-64.c
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-04-26 21:05:39 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-04-26 21:05:39 +0000
commitae40e4e10e196abb21fc8c33d060423571618fd5 (patch)
tree67153190de1b0394e3d35d7eaf83f26a95410ed9 /clang/test/Sema/align-x86-64.c
parent029afe4787b49805963c52819321174b757e6df9 (diff)
downloadbcm5719-llvm-ae40e4e10e196abb21fc8c33d060423571618fd5.tar.gz
bcm5719-llvm-ae40e4e10e196abb21fc8c33d060423571618fd5.zip
Gcc pads the size of an array using the alignment of its elements.
The size of the array may not be aligned according to alignment of its elements if an alignment attribute is specified in a typedef. Fixes rdar://8665729 & http://llvm.org/PR5637. llvm-svn: 130242
Diffstat (limited to 'clang/test/Sema/align-x86-64.c')
-rw-r--r--clang/test/Sema/align-x86-64.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/test/Sema/align-x86-64.c b/clang/test/Sema/align-x86-64.c
index 6dcf5714b00..edea5d8b742 100644
--- a/clang/test/Sema/align-x86-64.c
+++ b/clang/test/Sema/align-x86-64.c
@@ -9,3 +9,17 @@ void foo(void) {
char y[__alignof__(x) == 16 ? 1 : -1];
frob(y);
}
+
+// PR5637
+
+typedef __attribute__((aligned(16))) struct {
+ unsigned long long w[3];
+} UINT192;
+
+UINT192 ten2mk192M[] = {
+ {{0xcddd6e04c0592104ULL, 0x0fcf80dc33721d53ULL, 0xa7c5ac471b478423ULL}},
+ {{0xcddd6e04c0592104ULL, 0x0fcf80dc33721d53ULL, 0xa7c5ac471b478423ULL}},
+ {{0xcddd6e04c0592104ULL, 0x0fcf80dc33721d53ULL, 0xa7c5ac471b478423ULL}}
+};
+
+short chk1[sizeof(ten2mk192M) == 80 ? 1 : -1];
OpenPOWER on IntegriCloud