blob: dd3a0dae19cf600106d82131bb510754f5bde7d4 [file] [log] [blame]
Rafael Espindolaf7c10a32010-09-21 00:24:38 +00001// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
2
3
4 .text
5
6// Test that this produces a regular local symbol.
7 .type common1,@object
8 .local common1
9 .comm common1,1,1
10
Jason W Kimf7d52782010-10-19 17:39:10 +000011// CHECK: ('st_name', 0x00000001) # 'common1'
Rafael Espindolad7c27832011-08-04 15:10:35 +000012// CHECK-NEXT: ('st_bind', 0x0)
Rafael Espindola71a8f5c2011-08-04 15:24:00 +000013// CHECK-NEXT: ('st_type', 0x1)
Rafael Espindola67ac0c02011-08-04 15:38:19 +000014// CHECK-NEXT: ('st_other', 0x00)
Rafael Espindolaf7c10a32010-09-21 00:24:38 +000015// CHECK-NEXT: ('st_shndx',
Roman Divacky1ae3c162010-12-20 20:49:43 +000016// CHECK-NEXT: ('st_value', 0x0000000000000000)
17// CHECK-NEXT: ('st_size', 0x0000000000000001)
Rafael Espindolaf7c10a32010-09-21 00:24:38 +000018
19
20// Same as common1, but with directives in a different order.
21 .local common2
22 .type common2,@object
23 .comm common2,1,1
24
Jason W Kimf7d52782010-10-19 17:39:10 +000025// CHECK: ('st_name', 0x00000009) # 'common2'
Rafael Espindolad7c27832011-08-04 15:10:35 +000026// CHECK-NEXT: ('st_bind', 0x0)
Rafael Espindola71a8f5c2011-08-04 15:24:00 +000027// CHECK-NEXT: ('st_type', 0x1)
Rafael Espindola67ac0c02011-08-04 15:38:19 +000028// CHECK-NEXT: ('st_other', 0x00)
Rafael Espindolaf7c10a32010-09-21 00:24:38 +000029// CHECK-NEXT: ('st_shndx',
Roman Divacky1ae3c162010-12-20 20:49:43 +000030// CHECK-NEXT: ('st_value', 0x0000000000000001)
31// CHECK-NEXT: ('st_size', 0x0000000000000001)
Rafael Espindolaf7c10a32010-09-21 00:24:38 +000032
Rafael Espindola55d02f32010-11-14 21:11:16 +000033 .local common6
34 .comm common6,8,16
35
Rafael Espindola65ad8dc2011-08-04 14:27:46 +000036// CHECK: # Symbol 3
Rafael Espindola55d02f32010-11-14 21:11:16 +000037// CHECK-NEXT: (('st_name', 0x00000011) # 'common6'
Rafael Espindolad7c27832011-08-04 15:10:35 +000038// CHECK-NEXT: ('st_bind', 0x0)
Rafael Espindola71a8f5c2011-08-04 15:24:00 +000039// CHECK-NEXT: ('st_type', 0x1)
Rafael Espindola67ac0c02011-08-04 15:38:19 +000040// CHECK-NEXT: ('st_other', 0x00)
Rafael Espindola7c18fa82011-03-20 18:44:20 +000041// CHECK-NEXT: ('st_shndx', 0x00000004)
Roman Divacky1ae3c162010-12-20 20:49:43 +000042// CHECK-NEXT: ('st_value', 0x0000000000000010)
43// CHECK-NEXT: ('st_size', 0x0000000000000008)
Rafael Espindola55d02f32010-11-14 21:11:16 +000044// CHECK-NEXT: ),
45
Rafael Espindolaf7c10a32010-09-21 00:24:38 +000046// Test that without an explicit .local we produce a global.
47 .type common3,@object
48 .comm common3,4,4
49
Rafael Espindola55d02f32010-11-14 21:11:16 +000050// CHECK: ('st_name', 0x00000019) # 'common3'
Rafael Espindolad7c27832011-08-04 15:10:35 +000051// CHECK-NEXT: ('st_bind', 0x1)
Rafael Espindola71a8f5c2011-08-04 15:24:00 +000052// CHECK-NEXT: ('st_type', 0x1)
Rafael Espindola67ac0c02011-08-04 15:38:19 +000053// CHECK-NEXT: ('st_other', 0x00)
Jason W Kimf7d52782010-10-19 17:39:10 +000054// CHECK-NEXT: ('st_shndx', 0x0000fff2)
Roman Divacky1ae3c162010-12-20 20:49:43 +000055// CHECK-NEXT: ('st_value', 0x0000000000000004)
56// CHECK-NEXT: ('st_size', 0x0000000000000004)
Rafael Espindolaf7c10a32010-09-21 00:24:38 +000057
58
59// Test that without an explicit .local we produce a global, even if the first
60// occurrence is not in a directive.
61 .globl foo
62 .type foo,@function
63foo:
64 movsbl common4+3(%rip), %eax
65
66
67 .type common4,@object
68 .comm common4,40,16
69
Rafael Espindola55d02f32010-11-14 21:11:16 +000070// CHECK: ('st_name', 0x00000025) # 'common4'
Rafael Espindolad7c27832011-08-04 15:10:35 +000071// CHECK-NEXT: ('st_bind', 0x1)
Rafael Espindola71a8f5c2011-08-04 15:24:00 +000072// CHECK-NEXT: ('st_type', 0x1)
Rafael Espindola67ac0c02011-08-04 15:38:19 +000073// CHECK-NEXT: ('st_other', 0x00)
Jason W Kimf7d52782010-10-19 17:39:10 +000074// CHECK-NEXT: ('st_shndx', 0x0000fff2)
Roman Divacky1ae3c162010-12-20 20:49:43 +000075// CHECK-NEXT: ('st_value', 0x0000000000000010)
76// CHECK-NEXT: ('st_size', 0x0000000000000028)
Rafael Espindola765fb1a2010-11-14 19:40:55 +000077
78 .comm common5,4,4
79
Rafael Espindola65ad8dc2011-08-04 14:27:46 +000080// CHECK: # Symbol 9
Rafael Espindola55d02f32010-11-14 21:11:16 +000081// CHECK-NEXT: (('st_name', 0x0000002d) # 'common5'
Rafael Espindolad7c27832011-08-04 15:10:35 +000082// CHECK-NEXT: ('st_bind', 0x1)
Rafael Espindola71a8f5c2011-08-04 15:24:00 +000083// CHECK-NEXT: ('st_type', 0x1)
Rafael Espindola67ac0c02011-08-04 15:38:19 +000084// CHECK-NEXT: ('st_other', 0x00)
Rafael Espindola765fb1a2010-11-14 19:40:55 +000085// CHECK-NEXT: ('st_shndx', 0x0000fff2)
Roman Divacky1ae3c162010-12-20 20:49:43 +000086// CHECK-NEXT: ('st_value', 0x0000000000000004)
87// CHECK-NEXT: ('st_size', 0x0000000000000004)
Rafael Espindola765fb1a2010-11-14 19:40:55 +000088// CHECK-NEXT: ),