blob: 745dfbbdc8b4c7677482b67fbc43dcde11e5a876 [file] [log] [blame]
Rafael Espindola2ff9e832010-11-11 18:13:52 +00001// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
2
Rafael Espindola1f4f9e32010-11-14 04:17:37 +00003// Test that we produce the group sections and that they are a the beginning
Rafael Espindola2ff9e832010-11-11 18:13:52 +00004// of the file.
5
6// CHECK: # Section 0x00000001
Rafael Espindola1f4f9e32010-11-14 04:17:37 +00007// CHECK-NEXT: (('sh_name', 0x00000026) # '.group'
Rafael Espindola2ff9e832010-11-11 18:13:52 +00008// CHECK-NEXT: ('sh_type', 0x00000011)
9// CHECK-NEXT: ('sh_flags', 0x00000000)
10// CHECK-NEXT: ('sh_addr', 0x00000000)
11// CHECK-NEXT: ('sh_offset', 0x00000040)
12// CHECK-NEXT: ('sh_size', 0x0000000c)
Rafael Espindola1f4f9e32010-11-14 04:17:37 +000013// CHECK-NEXT: ('sh_link', 0x0000000c)
Rafael Espindola2ff9e832010-11-11 18:13:52 +000014// CHECK-NEXT: ('sh_info', 0x00000001)
15// CHECK-NEXT: ('sh_addralign', 0x00000004)
16// CHECK-NEXT: ('sh_entsize', 0x00000004)
17// CHECK-NEXT: ),
18// CHECK-NEXT: # Section 0x00000002
Rafael Espindola1f4f9e32010-11-14 04:17:37 +000019// CHECK-NEXT: (('sh_name', 0x00000026) # '.group'
Rafael Espindola2ff9e832010-11-11 18:13:52 +000020// CHECK-NEXT: ('sh_type', 0x00000011)
21// CHECK-NEXT: ('sh_flags', 0x00000000)
22// CHECK-NEXT: ('sh_addr', 0x00000000)
23// CHECK-NEXT: ('sh_offset', 0x0000004c)
24// CHECK-NEXT: ('sh_size', 0x00000008)
Rafael Espindola1f4f9e32010-11-14 04:17:37 +000025// CHECK-NEXT: ('sh_link', 0x0000000c)
Rafael Espindola2ff9e832010-11-11 18:13:52 +000026// CHECK-NEXT: ('sh_info', 0x00000002)
27// CHECK-NEXT: ('sh_addralign', 0x00000004)
28// CHECK-NEXT: ('sh_entsize', 0x00000004)
Rafael Espindola1f4f9e32010-11-14 04:17:37 +000029// CHECK-NEXT: ),
30// CHECK-NEXT: # Section 0x00000003
31// CHECK-NEXT: (('sh_name', 0x00000026) # '.group'
32// CHECK-NEXT: ('sh_type', 0x00000011)
33// CHECK-NEXT: ('sh_flags', 0x00000000)
34// CHECK-NEXT: ('sh_addr', 0x00000000)
35// CHECK-NEXT: ('sh_offset', 0x00000054)
36// CHECK-NEXT: ('sh_size', 0x00000008)
37// CHECK-NEXT: ('sh_link', 0x0000000c)
38// CHECK-NEXT: ('sh_info', 0x0000000d)
39// CHECK-NEXT: ('sh_addralign', 0x00000004)
40// CHECK-NEXT: ('sh_entsize', 0x00000004)
41// CHECK-NEXT: ),
42
43// Test that g1 and g2 are local, but g3 is an undefined global.
44
45// CHECK: # Symbol 0x00000001
46// CHECK-NEXT: (('st_name', 0x00000001) # 'g1'
47// CHECK-NEXT: ('st_bind', 0x00000000)
48// CHECK-NEXT: ('st_type', 0x00000000)
49// CHECK-NEXT: ('st_other', 0x00000000)
50// CHECK-NEXT: ('st_shndx', 0x00000007)
51// CHECK-NEXT: ('st_value', 0x00000000)
52// CHECK-NEXT: ('st_size', 0x00000000)
53// CHECK-NEXT: ),
54// CHECK-NEXT: # Symbol 0x00000002
55// CHECK-NEXT: (('st_name', 0x00000004) # 'g2'
56// CHECK-NEXT: ('st_bind', 0x00000000)
57// CHECK-NEXT: ('st_type', 0x00000000)
58// CHECK-NEXT: ('st_other', 0x00000000)
59// CHECK-NEXT: ('st_shndx', 0x00000002)
60// CHECK-NEXT: ('st_value', 0x00000000)
61// CHECK-NEXT: ('st_size', 0x00000000)
62// CHECK-NEXT: ),
63
64// CHECK: # Symbol 0x0000000d
65// CHECK-NEXT: (('st_name', 0x00000007) # 'g3'
66// CHECK-NEXT: ('st_bind', 0x00000001)
67// CHECK-NEXT: ('st_type', 0x00000000)
68// CHECK-NEXT: ('st_other', 0x00000000)
69// CHECK-NEXT: ('st_shndx', 0x00000000)
70// CHECK-NEXT: ('st_value', 0x00000000)
71// CHECK-NEXT: ('st_size', 0x00000000)
72// CHECK-NEXT: ),
73
Rafael Espindola2ff9e832010-11-11 18:13:52 +000074
75 .section .foo,"axG",@progbits,g1,comdat
76g1:
77 nop
78
79 .section .bar,"axG",@progbits,g1,comdat
80 nop
81
82 .section .zed,"axG",@progbits,g2,comdat
Rafael Espindola2ff9e832010-11-11 18:13:52 +000083 nop
Rafael Espindola1f4f9e32010-11-14 04:17:37 +000084
85 .section .baz,"axG",@progbits,g3,comdat
86 .long g3