1# REQUIRES: asserts
2# RUN: yaml2obj %s -o %t
3# RUN: llvm-jitlink -noexec --debug-only=jitlink -noexec %t 2>&1
4#
5# Check COMDAT associative symbol is emitted as local symbol.
6#
7# CHECK: Creating graph symbols...
8# CHECK:      2: Creating defined graph symbol for COFF symbol ".text" in .text (index: 2)
9# CHECK-NEXT:   0x0 (block + 0x00000000): size: 0x00000001, linkage: strong, scope: local, dead  -   <anonymous symbol>
10# CHECK-NEXT: 4: Exporting COMDAT graph symbol for COFF symbol "func" in section 2
11# CHECK-NEXT:   0x0 (block + 0x00000000): size: 0x00000001, linkage: weak, scope: default, dead  -   func
12# CHECK-NEXT: 5: Creating defined graph symbol for COFF symbol ".xdata" in .xdata (index: 3)
13# CHECK-NEXT:   0x0 (block + 0x00000000): size: 0x00000000, linkage: strong, scope: local, dead  -   .xdata
14
15--- !COFF
16header:
17  Machine:         IMAGE_FILE_MACHINE_AMD64
18  Characteristics: [  ]
19sections:
20  - Name:            .text
21    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
22    Alignment:       16
23    SectionData:     C3
24  - Name:            .text
25    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
26    Alignment:       16
27    SectionData:     C3
28  - Name:            .xdata
29    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_READ ]
30    Alignment:       4
31    SectionData:     '0100000000000000'
32symbols:
33  - Name:            .text
34    Value:           0
35    SectionNumber:   1
36    SimpleType:      IMAGE_SYM_TYPE_NULL
37    ComplexType:     IMAGE_SYM_DTYPE_NULL
38    StorageClass:    IMAGE_SYM_CLASS_STATIC
39    SectionDefinition:
40      Length:          1
41      NumberOfRelocations: 0
42      NumberOfLinenumbers: 0
43      CheckSum:        40735498
44      Number:          1
45  - Name:            .text
46    Value:           0
47    SectionNumber:   2
48    SimpleType:      IMAGE_SYM_TYPE_NULL
49    ComplexType:     IMAGE_SYM_DTYPE_NULL
50    StorageClass:    IMAGE_SYM_CLASS_STATIC
51    SectionDefinition:
52      Length:          1
53      NumberOfRelocations: 0
54      NumberOfLinenumbers: 0
55      CheckSum:        40735498
56      Number:          2
57      Selection:       IMAGE_COMDAT_SELECT_ANY
58  - Name:            func
59    Value:           0
60    SectionNumber:   2
61    SimpleType:      IMAGE_SYM_TYPE_NULL
62    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
63    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
64  - Name:            .xdata
65    Value:           0
66    SectionNumber:   3
67    SimpleType:      IMAGE_SYM_TYPE_NULL
68    ComplexType:     IMAGE_SYM_DTYPE_NULL
69    StorageClass:    IMAGE_SYM_CLASS_STATIC
70    SectionDefinition:
71      Length:          8
72      NumberOfRelocations: 0
73      NumberOfLinenumbers: 0
74      CheckSum:        3433693342
75      Number:          2
76      Selection:       IMAGE_COMDAT_SELECT_ASSOCIATIVE
77  - Name:            main
78    Value:           0
79    SectionNumber:   1
80    SimpleType:      IMAGE_SYM_TYPE_NULL
81    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
82    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
83...
84