[clang-tidy][use-internal-linkage]fix false positives for global overloaded operator...
[llvm-project.git] / lld / test / COFF / merge.test
blob11824aac1b08f3491a9feb11b1336e08ab71e70b
1 # RUN: yaml2obj %s -o %t.obj
2 # RUN: lld-link /out:%t.exe /entry:main /subsystem:console /force \
3 # RUN:   /merge:.foo=.abc /merge:.bar=.def %t.obj /debug
4 # RUN: llvm-readobj --sections %t.exe | FileCheck %s
6 # RUN: lld-link /out:%t.exe /entry:main /subsystem:console /force \
7 # RUN:   /merge:.foo=.bar /merge:.bar=.abc %t.obj /debug
8 # RUN: llvm-readobj --sections %t.exe | FileCheck --check-prefix=CHECK2 %s
10 # RUN: env LLD_IN_TEST=1 not lld-link /out:%t.exe /entry:main /subsystem:console /force \
11 # RUN:   /merge:.rsrc=.foo %t.obj /debug 2>&1 | FileCheck --check-prefix=NO-RSRC %s
12 # RUN: env LLD_IN_TEST=1 not lld-link /out:%t.exe /entry:main /subsystem:console /force \
13 # RUN:   /merge:.foo=.rsrc %t.obj /debug 2>&1 | FileCheck --check-prefix=NO-RSRC %s
14 # RUN: env LLD_IN_TEST=1 not lld-link /out:%t.exe /entry:main /subsystem:console /force \
15 # RUN:   /merge:.reloc=.foo %t.obj /debug 2>&1 | FileCheck --check-prefix=NO-RELOC %s
16 # RUN: env LLD_IN_TEST=1 not lld-link /out:%t.exe /entry:main /subsystem:console /force \
17 # RUN:   /merge:.foo=.reloc %t.obj /debug 2>&1 | FileCheck --check-prefix=NO-RELOC %s
18 # RUN: env LLD_IN_TEST=1 not lld-link /out:%t.exe /entry:main /subsystem:console /force \
19 # RUN:   /merge:.foo=.foo1 /merge:.foo1=.foo %t.obj /debug 2>&1 | FileCheck --check-prefix=NO-CYCLE %s
20 # RUN: env LLD_IN_TEST=1 not lld-link /out:%t.exe /entry:main /subsystem:console /force \
21 # RUN:   /merge:.foo=.foo1 /merge:.foo1=.foo2 /merge:.foo2=.foo1 %t.obj /debug 2>&1 | FileCheck --check-prefix=NO-CYCLE %s
23 # CHECK: Name: .def
24 # CHECK: Name: .abc
26 # CHECK2-NOT: Name: .bar
27 # CHECK2: Name: .abc
28 # CHECK2-NOT: Name: .bar
30 # NO-RSRC: /merge: cannot merge '.rsrc' with any section
31 # NO-RELOC: /merge: cannot merge '.reloc' with any section
33 # NO-CYCLE: /merge: cycle found for section '.foo'
35 --- !COFF
36 header:
37   Machine:         IMAGE_FILE_MACHINE_AMD64
38   Characteristics: []
39 sections:
40   - Name:            .foo
41     Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
42     Alignment:       4
43     SectionData:     000000000000
44   - Name:            .bar
45     Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
46     Alignment:       4
47     SectionData:     000000000000
48 symbols:
49   - Name:            .foo
50     Value:           0
51     SectionNumber:   1
52     SimpleType:      IMAGE_SYM_TYPE_NULL
53     ComplexType:     IMAGE_SYM_DTYPE_NULL
54     StorageClass:    IMAGE_SYM_CLASS_STATIC
55     SectionDefinition:
56       Length:          6
57       NumberOfRelocations: 0
58       NumberOfLinenumbers: 0
59       CheckSum:        0
60       Number:          0
61   - Name:            .bar
62     Value:           0
63     SectionNumber:   2
64     SimpleType:      IMAGE_SYM_TYPE_NULL
65     ComplexType:     IMAGE_SYM_DTYPE_NULL
66     StorageClass:    IMAGE_SYM_CLASS_STATIC
67     SectionDefinition:
68       Length:          6
69       NumberOfRelocations: 0
70       NumberOfLinenumbers: 0
71       CheckSum:        0
72       Number:          0
73   - Name:            main
74     Value:           0
75     SectionNumber:   1
76     SimpleType:      IMAGE_SYM_TYPE_NULL
77     ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
78     StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
79 ...