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