# COMDAT sections with non-external linkage should not be merged by ICF. # RUN: yaml2obj %s -o %t1.obj # RUN: sed s/foo/main/ %s | yaml2obj > %t2.obj # RUN: lld-link /out:%t.exe /entry:main /subsystem:console /verbose \ # RUN: %t1.obj %t2.obj > %t.log 2>&1 # RUN: FileCheck %s < %t.log # CHECK-NOT: Removed bar --- !COFF header: Machine: IMAGE_FILE_MACHINE_AMD64 Characteristics: [] sections: - Name: .text Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ] Alignment: 16 SectionData: 488D0500000000C3 Relocations: - VirtualAddress: 3 SymbolName: bar Type: IMAGE_REL_AMD64_REL32 - Name: .rdata Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_READ ] Alignment: 8 SectionData: 2A000000000000002B00000000000000 symbols: - Name: .text Value: 0 SectionNumber: 1 SimpleType: IMAGE_SYM_TYPE_NULL ComplexType: IMAGE_SYM_DTYPE_NULL StorageClass: IMAGE_SYM_CLASS_STATIC SectionDefinition: Length: 8 NumberOfRelocations: 1 NumberOfLinenumbers: 0 CheckSum: 1092178131 Number: 1 - Name: .rdata Value: 0 SectionNumber: 2 SimpleType: IMAGE_SYM_TYPE_NULL ComplexType: IMAGE_SYM_DTYPE_NULL StorageClass: IMAGE_SYM_CLASS_STATIC SectionDefinition: Length: 16 NumberOfRelocations: 0 NumberOfLinenumbers: 0 CheckSum: 1200668497 Number: 5 Selection: IMAGE_COMDAT_SELECT_ANY - Name: foo Value: 0 SectionNumber: 1 SimpleType: IMAGE_SYM_TYPE_NULL ComplexType: IMAGE_SYM_DTYPE_FUNCTION StorageClass: IMAGE_SYM_CLASS_EXTERNAL - Name: bar Value: 0 SectionNumber: 2 SimpleType: IMAGE_SYM_TYPE_NULL ComplexType: IMAGE_SYM_DTYPE_NULL StorageClass: IMAGE_SYM_CLASS_STATIC ...