blob: f9469dfae273cd106d7dff782d954bd4769c176b [file] [log] [blame]
Nico Rieckba848e32013-04-12 04:06:46 +00001// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -t | FileCheck %s
Rafael Espindolaa3e9a222010-11-11 18:13:52 +00002
Rafael Espindola7d0ba342010-11-14 04:17:37 +00003// Test that we produce the group sections and that they are a the beginning
Rafael Espindolaa3e9a222010-11-11 18:13:52 +00004// of the file.
5
Nico Rieckba848e32013-04-12 04:06:46 +00006// CHECK: Section {
7// CHECK: Index: 1
8// CHECK-NEXT: Name: .group
9// CHECK-NEXT: Type: SHT_GROUP
10// CHECK-NEXT: Flags [
11// CHECK-NEXT: ]
12// CHECK-NEXT: Address: 0x0
13// CHECK-NEXT: Offset: 0x40
14// CHECK-NEXT: Size: 12
15// CHECK-NEXT: Link: 13
16// CHECK-NEXT: Info: 1
17// CHECK-NEXT: AddressAlignment: 4
18// CHECK-NEXT: EntrySize: 4
19// CHECK-NEXT: }
20// CHECK-NEXT: Section {
21// CHECK-NEXT: Index: 2
22// CHECK-NEXT: Name: .group
23// CHECK-NEXT: Type: SHT_GROUP
24// CHECK-NEXT: Flags [
25// CHECK-NEXT: ]
26// CHECK-NEXT: Address: 0x0
27// CHECK-NEXT: Offset: 0x4C
28// CHECK-NEXT: Size: 8
29// CHECK-NEXT: Link: 13
30// CHECK-NEXT: Info: 2
31// CHECK-NEXT: AddressAlignment: 4
32// CHECK-NEXT: EntrySize: 4
33// CHECK-NEXT: }
34// CHECK-NEXT: Section {
35// CHECK-NEXT: Index: 3
36// CHECK-NEXT: Name: .group
37// CHECK-NEXT: Type: SHT_GROUP
38// CHECK-NEXT: Flags [
39// CHECK-NEXT: ]
40// CHECK-NEXT: Address: 0x0
41// CHECK-NEXT: Offset: 0x54
42// CHECK-NEXT: Size: 8
43// CHECK-NEXT: Link: 13
44// CHECK-NEXT: Info: 13
45// CHECK-NEXT: AddressAlignment: 4
46// CHECK-NEXT: EntrySize: 4
47// CHECK-NEXT: }
Rafael Espindola7d0ba342010-11-14 04:17:37 +000048
49// Test that g1 and g2 are local, but g3 is an undefined global.
50
Nico Rieckba848e32013-04-12 04:06:46 +000051// CHECK: Symbol {
52// CHECK: Name: g1 (1)
53// CHECK-NEXT: Value: 0x0
54// CHECK-NEXT: Size: 0
55// CHECK-NEXT: Binding: Local
56// CHECK-NEXT: Type: None
57// CHECK-NEXT: Other: 0
58// CHECK-NEXT: Section: .foo (0x7)
59// CHECK-NEXT: }
60// CHECK-NEXT: Symbol {
61// CHECK-NEXT: Name: g2 (4)
62// CHECK-NEXT: Value: 0x0
63// CHECK-NEXT: Size: 0
64// CHECK-NEXT: Binding: Local
65// CHECK-NEXT: Type: None
66// CHECK-NEXT: Other: 0
67// CHECK-NEXT: Section: .group (0x2)
68// CHECK-NEXT: }
Rafael Espindola7d0ba342010-11-14 04:17:37 +000069
Nico Rieckba848e32013-04-12 04:06:46 +000070// CHECK: Symbol {
71// CHECK: Name: g3 (7)
72// CHECK-NEXT: Value: 0x0
73// CHECK-NEXT: Size: 0
74// CHECK-NEXT: Binding: Global
75// CHECK-NEXT: Type: None
76// CHECK-NEXT: Other: 0
77// CHECK-NEXT: Section: (0x0)
78// CHECK-NEXT: }
Rafael Espindola7d0ba342010-11-14 04:17:37 +000079
Rafael Espindolaa3e9a222010-11-11 18:13:52 +000080
81 .section .foo,"axG",@progbits,g1,comdat
82g1:
83 nop
84
85 .section .bar,"axG",@progbits,g1,comdat
86 nop
87
88 .section .zed,"axG",@progbits,g2,comdat
Rafael Espindolaa3e9a222010-11-11 18:13:52 +000089 nop
Rafael Espindola7d0ba342010-11-14 04:17:37 +000090
91 .section .baz,"axG",@progbits,g3,comdat
92 .long g3