diff options
Diffstat (limited to 'test/CodeGen/align-systemz.c')
-rw-r--r-- | test/CodeGen/align-systemz.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/CodeGen/align-systemz.c b/test/CodeGen/align-systemz.c new file mode 100644 index 000000000000..68a21e39ab36 --- /dev/null +++ b/test/CodeGen/align-systemz.c @@ -0,0 +1,27 @@ +// RUN: %clang_cc1 -triple s390x-linux-gnu -emit-llvm %s -o - | FileCheck %s + +// SystemZ prefers to align all global variables to two bytes. + +struct test { + signed char a; +}; + +char c; +// CHECK-DAG: @c = common global i8 0, align 2 + +struct test s; +// CHECK-DAG: @s = common global %struct.test zeroinitializer, align 2 + +extern char ec; +// CHECK-DAG: @ec = external global i8, align 2 + +extern struct test es; +// CHECK-DAG: @es = external global %struct.test, align 2 + +// Dummy function to make sure external symbols are used. +void func (void) +{ + c = ec; + s = es; +} + |