diff options
author | Jan Wen Voung <jvoung@google.com> | 2010-09-30 05:59:22 +0000 |
---|---|---|
committer | Jan Wen Voung <jvoung@google.com> | 2010-09-30 05:59:22 +0000 |
commit | 186e7a0fb1b2028e4fa9c3efe29d9433c91b3f66 (patch) | |
tree | dffdd5461c22f40aeb61afb3c80cef1ba8567648 /test/MC/ELF | |
parent | 1b6285cd72c480cd39048539d03b240e3c47d195 (diff) | |
download | external_llvm-186e7a0fb1b2028e4fa9c3efe29d9433c91b3f66.zip external_llvm-186e7a0fb1b2028e4fa9c3efe29d9433c91b3f66.tar.gz external_llvm-186e7a0fb1b2028e4fa9c3efe29d9433c91b3f66.tar.bz2 |
Move logic of determining ELF entsize from the .s printer to initialization
time. That way, the EntrySize field is initialized for other code paths,
namely, the .ll -> .o code path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115141 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/ELF')
-rw-r--r-- | test/MC/ELF/entsize.ll | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/MC/ELF/entsize.ll b/test/MC/ELF/entsize.ll new file mode 100644 index 0000000..f8290d1 --- /dev/null +++ b/test/MC/ELF/entsize.ll @@ -0,0 +1,44 @@ +; RUN: llc -filetype=obj -mtriple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck -check-prefix=64 %s + +; Test that constant mergeable strings have sh_entsize set. + +@.str1 = private constant [6 x i8] c"tring\00" +@.str2 = private constant [7 x i8] c"String\00" +@.c8a = private constant [1 x i64] [i64 42] +@.c8b = private constant [1 x i64] [i64 42] + +define i32 @main() nounwind { + %1 = call i32 @puts(i8* getelementptr inbounds ([6 x i8]* @.str1, i32 0, i32 0)) + %2 = call i32 @puts(i8* getelementptr inbounds ([7 x i8]* @.str2, i32 0, i32 0)) + call void @foo(i64* getelementptr inbounds ([1 x i64]* @.c8a, i32 0, i32 0)) + call void @foo(i64* getelementptr inbounds ([1 x i64]* @.c8b, i32 0, i32 0)) + ret i32 0 +} + +declare i32 @puts(i8* nocapture) nounwind +declare void @foo(i64* nocapture) nounwind + +;;;;; + +; 64: (('sh_name', 7) # '.rodata.str1.1' +; 64-NEXT: ('sh_type', 1) +; 64-NEXT: ('sh_flags', 50) +; 64-NEXT: ('sh_addr', +; 64-NEXT: ('sh_offset', +; 64-NEXT: ('sh_size', 13) +; 64-NEXT: ('sh_link', +; 64-NEXT: ('sh_info', +; 64-NEXT: ('sh_addralign', 1) +; 64-NEXT: ('sh_entsize', 1) + +; 64: (('sh_name', 22) # '.rodata.cst8' +; 64-NEXT: ('sh_type', 1) +; 64-NEXT: ('sh_flags', 18) +; 64-NEXT: ('sh_addr', +; 64-NEXT: ('sh_offset', +; 64-NEXT: ('sh_size', 16) +; 64-NEXT: ('sh_link', +; 64-NEXT: ('sh_info', +; 64-NEXT: ('sh_addralign', 8) +; 64-NEXT: ('sh_entsize', 8) + |