summaryrefslogtreecommitdiff
path: root/test/CodeGen/ARM/elf-lcomm-align.ll
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2011-09-01 23:04:27 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2011-09-01 23:04:27 +0000
commit36a16015ac108e2f0dd2d6d96a6d364bc74c50d7 (patch)
tree32f8e302aea0fbe6b07b367e256e4f2e01bc19a4 /test/CodeGen/ARM/elf-lcomm-align.ll
parent7df496d2ad1ecbc86d454a5cea2ae3e0928197ee (diff)
Don't drop alignment info on local common symbols.
- On COFF the .lcomm directive has an alignment argument. - On ELF we fall back to .local + .comm Based on a patch by NAKAMURA Takumi. Fixes PR9337, PR9483 and PR10128. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138976 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/ARM/elf-lcomm-align.ll')
-rw-r--r--test/CodeGen/ARM/elf-lcomm-align.ll14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/CodeGen/ARM/elf-lcomm-align.ll b/test/CodeGen/ARM/elf-lcomm-align.ll
new file mode 100644
index 00000000000..46792990e59
--- /dev/null
+++ b/test/CodeGen/ARM/elf-lcomm-align.ll
@@ -0,0 +1,14 @@
+; RUN: llc < %s -mtriple=arm-linux-gnueabi -O0 | FileCheck %s
+; run with -O0 to avoid arm global merging.
+
+@c = internal global i8 0, align 1
+@x = internal global i32 0, align 4
+
+; CHECK: .lcomm c,1
+; .lcomm doesn't support alignment.
+; CHECK: .local x
+; CHECK-NEXT: .comm x,4,4
+
+define i32 @foo() nounwind {
+ ret i32 sub (i32 ptrtoint (i8* @c to i32), i32 ptrtoint (i32* @x to i32))
+}