diff options
| author | Benjamin Kramer <benny.kra@googlemail.com> | 2011-09-01 23:04:27 +0000 |
|---|---|---|
| committer | Benjamin Kramer <benny.kra@googlemail.com> | 2011-09-01 23:04:27 +0000 |
| commit | 6397051ece4b63fedd2c20bdb2a1e9912056cad7 (patch) | |
| tree | aa16a0fe018163955eddf7542f2b221675ef8071 /llvm/test/CodeGen/ARM/elf-lcomm-align.ll | |
| parent | b10c631f5380bc17e0694e75e797251748e33657 (diff) | |
| download | bcm5719-llvm-6397051ece4b63fedd2c20bdb2a1e9912056cad7.tar.gz bcm5719-llvm-6397051ece4b63fedd2c20bdb2a1e9912056cad7.zip | |
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.
llvm-svn: 138976
Diffstat (limited to 'llvm/test/CodeGen/ARM/elf-lcomm-align.ll')
| -rw-r--r-- | llvm/test/CodeGen/ARM/elf-lcomm-align.ll | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/elf-lcomm-align.ll b/llvm/test/CodeGen/ARM/elf-lcomm-align.ll new file mode 100644 index 00000000000..46792990e59 --- /dev/null +++ b/llvm/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)) +} |

