1# COMDAT sections with non-external linkage should not be merged by ICF.
2
3# RUN: yaml2obj < %s > %t1.obj
4# RUN: sed s/foo/main/ %s | yaml2obj > %t2.obj
5# RUN: lld-link /out:%t.exe /entry:main /subsystem:console /verbose \
6# RUN:   %t1.obj %t2.obj > %t.log 2>&1
7# RUN: FileCheck %s < %t.log
8
9# CHECK-NOT: Removed bar
10
11--- !COFF
12header:
13  Machine:         IMAGE_FILE_MACHINE_AMD64
14  Characteristics: []
15sections:
16  - Name:            .text
17    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
18    Alignment:       16
19    SectionData:     488D0500000000C3
20    Relocations:
21      - VirtualAddress:  3
22        SymbolName:      bar
23        Type:            IMAGE_REL_AMD64_REL32
24  - Name:            .rdata
25    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_READ ]
26    Alignment:       8
27    SectionData:     2A000000000000002B00000000000000
28symbols:
29  - Name:            .text
30    Value:           0
31    SectionNumber:   1
32    SimpleType:      IMAGE_SYM_TYPE_NULL
33    ComplexType:     IMAGE_SYM_DTYPE_NULL
34    StorageClass:    IMAGE_SYM_CLASS_STATIC
35    SectionDefinition:
36      Length:          8
37      NumberOfRelocations: 1
38      NumberOfLinenumbers: 0
39      CheckSum:        1092178131
40      Number:          1
41  - Name:            .rdata
42    Value:           0
43    SectionNumber:   2
44    SimpleType:      IMAGE_SYM_TYPE_NULL
45    ComplexType:     IMAGE_SYM_DTYPE_NULL
46    StorageClass:    IMAGE_SYM_CLASS_STATIC
47    SectionDefinition:
48      Length:          16
49      NumberOfRelocations: 0
50      NumberOfLinenumbers: 0
51      CheckSum:        1200668497
52      Number:          5
53      Selection:       IMAGE_COMDAT_SELECT_ANY
54  - Name:            foo
55    Value:           0
56    SectionNumber:   1
57    SimpleType:      IMAGE_SYM_TYPE_NULL
58    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
59    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
60  - Name:            bar
61    Value:           0
62    SectionNumber:   2
63    SimpleType:      IMAGE_SYM_TYPE_NULL
64    ComplexType:     IMAGE_SYM_DTYPE_NULL
65    StorageClass:    IMAGE_SYM_CLASS_STATIC
66...
67