1# Tests that an associative comdat being associated with another 2# associated comdat later in the file produces an error. 3# RUN: sed -e s/ASSOC1/2/ -e s/ASSOC2/3/ %s | yaml2obj > %t.obj 4# RUN: not lld-link /include:symbol /dll /noentry /nodefaultlib %t.obj /out:%t.exe 2>&1 | FileCheck --check-prefix=FORWARD %s 5# FORWARD: lld-link: error: {{.*}}: associative comdat .text$ac1 (sec 1) has invalid reference to section .text$ac2 (sec 2) 6# FORWARD-NOT: lld-link: error: 7 8# Tests that an associative comdat being associated with another 9# associated comdat earlier in the file works. 10# RUN: sed -e s/ASSOC1/3/ -e s/ASSOC2/1/ %s | yaml2obj > %t.obj 11 12# RUN: lld-link /include:symbol /dll /noentry /nodefaultlib %t.obj /out:%t.exe 13# RUN: llvm-objdump -s %t.exe | FileCheck --check-prefix=BACKWARD %s 14# BACKWARD: Contents of section .text: 15# BACKWARD: 180001000 01000000 02000000 03000000 ............ 16 17# RUN: lld-link /dll /noentry /nodefaultlib %t.obj /out:%t.exe 18# RUN: llvm-objdump -s %t.exe | FileCheck --check-prefix=BACKWARDDROP %s 19# BACKWARDDROP-NOT: Contents of section .text: 20 21--- !COFF 22header: 23 Machine: IMAGE_FILE_MACHINE_AMD64 24 Characteristics: [ ] 25sections: 26 - Name: '.text$ac1' 27 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ] 28 Alignment: 1 29 SectionData: '01000000' 30 - Name: '.text$ac2' 31 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ] 32 Alignment: 1 33 SectionData: '02000000' 34 - Name: '.text$nm' 35 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ] 36 Alignment: 1 37 SectionData: '03000000' 38symbols: 39 - Name: '.text$ac1' 40 Value: 0 41 SectionNumber: 1 42 SimpleType: IMAGE_SYM_TYPE_NULL 43 ComplexType: IMAGE_SYM_DTYPE_NULL 44 StorageClass: IMAGE_SYM_CLASS_STATIC 45 SectionDefinition: 46 Length: 4 47 NumberOfRelocations: 0 48 NumberOfLinenumbers: 0 49 CheckSum: 3099354981 50 Number: ASSOC1 51 Selection: IMAGE_COMDAT_SELECT_ASSOCIATIVE 52 - Name: '.text$ac2' 53 Value: 0 54 SectionNumber: 2 55 SimpleType: IMAGE_SYM_TYPE_NULL 56 ComplexType: IMAGE_SYM_DTYPE_NULL 57 StorageClass: IMAGE_SYM_CLASS_STATIC 58 SectionDefinition: 59 Length: 4 60 NumberOfRelocations: 0 61 NumberOfLinenumbers: 0 62 CheckSum: 3099354981 63 Number: ASSOC2 64 Selection: IMAGE_COMDAT_SELECT_ASSOCIATIVE 65 - Name: '.text$nm' 66 Value: 0 67 SectionNumber: 3 68 SimpleType: IMAGE_SYM_TYPE_NULL 69 ComplexType: IMAGE_SYM_DTYPE_NULL 70 StorageClass: IMAGE_SYM_CLASS_STATIC 71 SectionDefinition: 72 Length: 4 73 NumberOfRelocations: 0 74 NumberOfLinenumbers: 0 75 CheckSum: 3099354981 76 Number: 4 77 Selection: IMAGE_COMDAT_SELECT_ANY 78 - Name: symbol 79 Value: 0 80 SectionNumber: 3 81 SimpleType: IMAGE_SYM_TYPE_NULL 82 ComplexType: IMAGE_SYM_DTYPE_NULL 83 StorageClass: IMAGE_SYM_CLASS_EXTERNAL 84 - Name: assocsym2 85 Value: 0 86 SectionNumber: 1 87 SimpleType: IMAGE_SYM_TYPE_NULL 88 ComplexType: IMAGE_SYM_DTYPE_NULL 89 StorageClass: IMAGE_SYM_CLASS_STATIC 90 - Name: assocsym 91 Value: 0 92 SectionNumber: 2 93 SimpleType: IMAGE_SYM_TYPE_NULL 94 ComplexType: IMAGE_SYM_DTYPE_NULL 95 StorageClass: IMAGE_SYM_CLASS_STATIC 96... 97 98