entsize.s revision 5c4e52e49648c196f629b8623b4aca7e4c0080e3
1// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump  --dump-section-data | FileCheck  %s
2
3// Test that mergeable constants have sh_entsize set.
4
5// 1 byte strings
6    .section	.rodata.str1.1,"aMS",@progbits,1
7
8    .type	.L.str1,@object         # @.str1
9.L.str1:
10	.asciz	 "tring"
11	.size	.L.str1, 6
12
13	.type	.L.str2,@object         # @.str2
14.L.str2:
15	.asciz	 "String"
16	.size	.L.str2, 7
17
18// 2 byte strings
19    .section	.rodata.str2.1,"aMS",@progbits,2
20	.type	.L.str3,@object         # @.str3
21.L.str3:
22	.asciz	 "L\000o\000n\000g\000"
23	.size	.L.str3, 9
24
25	.type	.L.str4,@object         # @.str4
26.L.str4:
27	.asciz	 "o\000n\000g\000"
28	.size	.L.str4, 7
29
30 // 8 byte constants
31    .section	.rodata.cst8,"aM",@progbits,8
32    .quad 42
33    .quad 42
34
35// CHECK: # Section 4
36// CHECK-NEXT:   ('sh_name', 0x00000048) # '.rodata.str1.1'
37// CHECK-NEXT:   ('sh_type', 0x00000001)
38// CHECK-NEXT:   ('sh_flags', 0x0000000000000032)
39// CHECK-NEXT:   ('sh_addr',
40// CHECK-NEXT:   ('sh_offset',
41// CHECK-NEXT:   ('sh_size', 0x000000000000000d)
42// CHECK-NEXT:   ('sh_link',
43// CHECK-NEXT:   ('sh_info',
44// CHECK-NEXT:   ('sh_addralign', 0x0000000000000001)
45// CHECK-NEXT:   ('sh_entsize', 0x0000000000000001)
46
47// CHECK: # Section 5
48// CHECK-NEXT:   ('sh_name', 0x00000039) # '.rodata.str2.1'
49// CHECK-NEXT:   ('sh_type', 0x00000001)
50// CHECK-NEXT:   ('sh_flags', 0x0000000000000032)
51// CHECK-NEXT:   ('sh_addr',
52// CHECK-NEXT:   ('sh_offset',
53// CHECK-NEXT:   ('sh_size', 0x0000000000000010)
54// CHECK-NEXT:   ('sh_link',
55// CHECK-NEXT:   ('sh_info',
56// CHECK-NEXT:   ('sh_addralign', 0x0000000000000001)
57// CHECK-NEXT:   ('sh_entsize', 0x0000000000000002)
58
59// CHECK: # Section 6
60// CHECK-NEXT:   ('sh_name', 0x0000002c) # '.rodata.cst8
61// CHECK-NEXT:   ('sh_type', 0x00000001)
62// CHECK-NEXT:   ('sh_flags', 0x0000000000000012)
63// CHECK-NEXT:   ('sh_addr',
64// CHECK-NEXT:   ('sh_offset',
65// CHECK-NEXT:   ('sh_size', 0x0000000000000010)
66// CHECK-NEXT:   ('sh_link',
67// CHECK-NEXT:   ('sh_info',
68// CHECK-NEXT:   ('sh_addralign', 0x0000000000000001)
69// CHECK-NEXT:   ('sh_entsize', 0x0000000000000008)
70