xref: /llvm-project-15.0.7/lld/test/ELF/comdat.s (revision fcef3e46)
1// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
2// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/comdat.s -o %t2.o
3// RUN: ld.lld -shared %t.o %t.o %t2.o -o %t
4// RUN: llvm-objdump -d %t | FileCheck %s
5// RUN: llvm-readobj -s -t %t | FileCheck --check-prefix=READ %s
6// REQUIRES: x86
7
8        .section	.text2,"axG",@progbits,foo,comdat,unique,0
9foo:
10        nop
11
12// CHECK: Disassembly of section .text2:
13// CHECK-NEXT: foo:
14// CHECK-NEXT:   1000: {{.*}}  nop
15// CHECK-NOT: nop
16
17        .section bar, "ax"
18        call foo
19
20// CHECK: Disassembly of section bar:
21// CHECK-NEXT: bar:
22// 0x1000 - 0x1001 - 5 = -6
23// 0      - 0x1006 - 5 = -4107
24// CHECK-NEXT:   1001:	{{.*}}  callq  -6
25// CHECK-NEXT:   1006:	{{.*}}  callq  -4107
26
27        .section .text3,"axG",@progbits,zed,comdat,unique,0
28
29
30// READ:      Name: .text2
31// READ-NEXT: Type: SHT_PROGBITS
32// READ-NEXT: Flags [
33// READ-NEXT:   SHF_ALLOC
34// READ-NEXT:   SHF_EXECINSTR
35// READ-NEXT: ]
36
37// READ:      Name: .text3
38// READ-NEXT: Type: SHT_PROGBITS
39// READ-NEXT: Flags [
40// READ-NEXT:   SHF_ALLOC
41// READ-NEXT:   SHF_EXECINSTR
42// READ-NEXT: ]
43
44// READ:      Symbols [
45// READ-NEXT:   Symbol {
46// READ-NEXT:     Name:  (0)
47// READ-NEXT:     Value: 0x0
48// READ-NEXT:     Size: 0
49// READ-NEXT:     Binding: Local
50// READ-NEXT:     Type: None
51// READ-NEXT:     Other: 0
52// READ-NEXT:     Section: Undefined
53// READ-NEXT:   }
54// READ-NEXT:   Symbol {
55// READ-NEXT:     Name: foo
56// READ-NEXT:     Value
57// READ-NEXT:     Size: 0
58// READ-NEXT:     Binding: Local
59// READ-NEXT:     Type: None
60// READ-NEXT:     Other: 0
61// READ-NEXT:     Section: .text
62// READ-NEXT:   }
63// READ-NEXT:   Symbol {
64// READ-NEXT:     Name: _DYNAMIC
65// READ-NEXT:     Value: 0x2000
66// READ-NEXT:     Size: 0
67// READ-NEXT:     Binding: Local
68// READ-NEXT:     Type: None
69// READ-NEXT:     Other [ (0x2)
70// READ-NEXT:       STV_HIDDEN
71// READ-NEXT:     ]
72// READ-NEXT:     Section: .dynamic
73// READ-NEXT:   }
74// READ-NEXT:   Symbol {
75// READ-NEXT:     Name: abc
76// READ-NEXT:     Value: 0x0
77// READ-NEXT:     Size: 0
78// READ-NEXT:     Binding: Global
79// READ-NEXT:     Type: None
80// READ-NEXT:     Other: 0
81// READ-NEXT:     Section: Undefined
82// READ-NEXT:   }
83// READ-NEXT: ]
84