blob: 2bf9fa9fb594e4d7f338725e2751eb806d8c3226 [file] [log] [blame]
Nico Rieckba848e32013-04-12 04:06:46 +00001; RUN: llc -filetype=obj -mtriple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s | FileCheck -check-prefix=64 %s
Jan Wen Voungefbdbe52010-09-30 05:59:22 +00002
3; Test that constant mergeable strings have sh_entsize set.
4
Rafael Espindolaec517cd2011-01-16 18:02:57 +00005@.str1 = private unnamed_addr constant [6 x i8] c"tring\00"
6@.str2 = private unnamed_addr constant [7 x i8] c"String\00"
7@.c8a = private unnamed_addr constant [1 x i64] [i64 42]
8@.c8b = private unnamed_addr constant [1 x i64] [i64 42]
Jan Wen Voungefbdbe52010-09-30 05:59:22 +00009
10define i32 @main() nounwind {
11 %1 = call i32 @puts(i8* getelementptr inbounds ([6 x i8]* @.str1, i32 0, i32 0))
12 %2 = call i32 @puts(i8* getelementptr inbounds ([7 x i8]* @.str2, i32 0, i32 0))
13 call void @foo(i64* getelementptr inbounds ([1 x i64]* @.c8a, i32 0, i32 0))
14 call void @foo(i64* getelementptr inbounds ([1 x i64]* @.c8b, i32 0, i32 0))
15 ret i32 0
16}
17
18declare i32 @puts(i8* nocapture) nounwind
19declare void @foo(i64* nocapture) nounwind
20
21;;;;;
22
Nico Rieckba848e32013-04-12 04:06:46 +000023; 64: Section {
24; 64: Name: .rodata.str1.1
25; 64-NEXT: Type: SHT_PROGBITS
26; 64-NEXT: Flags [
27; 64-NEXT: SHF_ALLOC
28; 64-NEXT: SHF_MERGE
29; 64-NEXT: SHF_STRINGS
30; 64-NEXT: ]
31; 64-NEXT: Address:
32; 64-NEXT: Offset:
33; 64-NEXT: Size: 13
34; 64-NEXT: Link:
35; 64-NEXT: Info:
36; 64-NEXT: AddressAlignment: 1
37; 64-NEXT: EntrySize: 1
38; 64-NEXT: }
Jan Wen Voungefbdbe52010-09-30 05:59:22 +000039
Nico Rieckba848e32013-04-12 04:06:46 +000040; 64: Section {
41; 64: Name: .rodata.cst8
42; 64-NEXT: Type: SHT_PROGBITS
43; 64-NEXT: Flags [
44; 64-NEXT: SHF_ALLOC
45; 64-NEXT: SHF_MERGE
46; 64-NEXT: ]
47; 64-NEXT: Address:
48; 64-NEXT: Offset:
49; 64-NEXT: Size: 16
50; 64-NEXT: Link:
51; 64-NEXT: Info:
52; 64-NEXT: AddressAlignment: 8
53; 64-NEXT: EntrySize: 8
54; 64-NEXT: }