xref: /llvm-project/llvm/test/ExecutionEngine/JITLink/x86-64/COFF_comdat_associative_no_dead_strip.test (revision 8ad75c1037289b06bd1b95ff445797d380d93039)
1# RUN: yaml2obj %s -o %t
2# RUN: llvm-jitlink -noexec \
3# RUN: -slab-allocate 100Kb -slab-address 0xfff00000 -slab-page-size 4096 \
4# RUN: -show-graphs='.*' -noexec %t 2>&1 | FileCheck %s
5#
6# Check a comdat child block connected by associative selection type is not dead strip when
7# parent block is alive.
8#
9# CHECK: section child:
10# CHECK-EMPTY:
11# CHECK-NEXT: block 0xfff00000 size = 0x00000008, align = 4, alignment-offset = 0
12# CHECK-NEXT:   symbols:
13# CHECK-NEXT:     0xfff00000 (block + 0x00000000): size: 0x00000008, linkage: strong, scope: local, live  -   child
14# CHECK-NEXT:   no edges
15
16--- !COFF
17header:
18  Machine:         IMAGE_FILE_MACHINE_AMD64
19  Characteristics: [  ]
20sections:
21  - Name:            .text
22    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
23    Alignment:       16
24    SectionData:     '0000000000000000'
25    Relocations:
26      - VirtualAddress:  0
27        SymbolTableIndex: 2
28        Type:            IMAGE_REL_AMD64_REL32
29  - Name:            parent
30    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
31    Alignment:       16
32    SectionData:     '0000000000000000'
33  - Name:            child
34    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_READ ]
35    Alignment:       4
36    SectionData:     '0000000000000000'
37symbols:
38  - Name:            .text
39    Value:           0
40    SectionNumber:   1
41    SimpleType:      IMAGE_SYM_TYPE_NULL
42    ComplexType:     IMAGE_SYM_DTYPE_NULL
43    StorageClass:    IMAGE_SYM_CLASS_STATIC
44    SectionDefinition:
45      Length:          8
46      NumberOfRelocations: 0
47      CheckSum:            0
48      NumberOfLinenumbers: 0
49      Number:          1
50  - Name:            .text
51    Value:           0
52    SectionNumber:   2
53    SimpleType:      IMAGE_SYM_TYPE_NULL
54    ComplexType:     IMAGE_SYM_DTYPE_NULL
55    StorageClass:    IMAGE_SYM_CLASS_STATIC
56    SectionDefinition:
57      Length:          8
58      NumberOfRelocations: 0
59      NumberOfLinenumbers: 0
60      CheckSum:  0
61      Number:          3
62      Selection:       IMAGE_COMDAT_SELECT_ANY
63  - Name:            func
64    Value:           0
65    SectionNumber:   2
66    SimpleType:      IMAGE_SYM_TYPE_NULL
67    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
68    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
69  - Name:            child
70    Value:           0
71    SectionNumber:   3
72    SimpleType:      IMAGE_SYM_TYPE_NULL
73    ComplexType:     IMAGE_SYM_DTYPE_NULL
74    StorageClass:    IMAGE_SYM_CLASS_STATIC
75    SectionDefinition:
76      Length:          4
77      NumberOfRelocations: 0
78      NumberOfLinenumbers: 0
79      Number:          2
80      CheckSum:  0
81      Selection:       IMAGE_COMDAT_SELECT_ASSOCIATIVE
82  - Name:            main
83    Value:           0
84    SectionNumber:   1
85    SimpleType:      IMAGE_SYM_TYPE_NULL
86    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
87    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
88...
89