Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / lld / test / COFF / delayimporttables.yaml
blobf1e7c61f55a5efe5b6594710594f27e6da4cc851
1 # RUN: yaml2obj %p/Inputs/delayimporttables-dll1.yaml -o %t1.obj
2 # RUN: yaml2obj %p/Inputs/delayimporttables-dll2.yaml -o %t2.obj
3 # RUN: yaml2obj %s -o %t.obj
4 # RUN: lld-link /nodefaultlib /entry:DllMain /out:%T/delayimporttables-dll1.dll /dll /implib:%t-dll1.lib %t1.obj
5 # RUN: lld-link /nodefaultlib /entry:DllMain /out:%T/delayimporttables-dll2.dll /dll /implib:%t-dll2.lib %t2.obj
6 # RUN: lld-link /nodefaultlib /entry:main /out:%t.exe /delayload:delayimporttables-dll1.dll /delayload:delayimporttables-dll2.dll %t.obj %t-dll1.lib %t-dll2.lib
7 # RUN: llvm-readobj --coff-imports %t.exe |FileCheck %s
9 #      CHECK: Format: COFF-x86-64
10 # CHECK-NEXT: Arch: x86_64
11 # CHECK-NEXT: AddressSize: 64bit
12 # CHECK-NEXT: DelayImport {
13 # CHECK-NEXT:   Name: delayimporttables-dll1.dll
14 # CHECK-NEXT:   Attributes: 0x1
15 # CHECK-NEXT:   ModuleHandle: 0x3000
16 # CHECK-NEXT:   ImportAddressTable: 0x3010
17 # CHECK-NEXT:   ImportNameTable: 0x2070
18 # CHECK-NEXT:   BoundDelayImportTable: 0x0
19 # CHECK-NEXT:   UnloadDelayImportTable: 0x0
20 # CHECK-NEXT:   Import {
21 # CHECK-NEXT:     Symbol: one (0)
22 # CHECK-NEXT:     Address: 0x14000104D
23 # CHECK-NEXT:   }
24 # CHECK-NEXT:   Import {
25 # CHECK-NEXT:     Symbol: two (0)
26 # CHECK-NEXT:     Address: 0x140001059
27 # CHECK-NEXT:   }
28 # CHECK-NEXT: }
29 # CHECK-NEXT: DelayImport {
30 # CHECK-NEXT:   Name: delayimporttables-dll2.dll
31 # CHECK-NEXT:   Attributes: 0x1
32 # CHECK-NEXT:   ModuleHandle: 0x3008
33 # CHECK-NEXT:   ImportAddressTable: 0x3028
34 # CHECK-NEXT:   ImportNameTable: 0x2088
35 # CHECK-NEXT:   BoundDelayImportTable: 0x0
36 # CHECK-NEXT:   UnloadDelayImportTable: 0x0
37 # CHECK-NEXT:   Import {
38 # CHECK-NEXT:     Symbol: left (0)
39 # CHECK-NEXT:     Address: 0x1400010B8
40 # CHECK-NEXT:   }
41 # CHECK-NEXT:   Import {
42 # CHECK-NEXT:     Symbol: right (0)
43 # CHECK-NEXT:     Address: 0x1400010C4
44 # CHECK-NEXT:   }
45 # CHECK-NEXT: }
47 --- !COFF
48 header:
49   Machine:         IMAGE_FILE_MACHINE_AMD64
50   Characteristics: [  ]
51 sections:
52   - Name:            .drectve
53     Characteristics: [ IMAGE_SCN_LNK_INFO, IMAGE_SCN_LNK_REMOVE ]
54     Alignment:       1
55     SectionData:     2020202F44454641554C544C49423A224C4942434D5422202F44454641554C544C49423A224F4C444E414D45532220
56   - Name:            '.text$mn'
57     Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
58     Alignment:       16
59     SectionData:     4889542410894C24084883EC28FF1500000000FF1500000000FF1500000000FF150000000033C04883C428C3CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC488954241048894C240833C0C3
60     Relocations:
61       - VirtualAddress:  15
62         SymbolName:      __imp_one
63         Type:            IMAGE_REL_AMD64_REL32
64       - VirtualAddress:  21
65         SymbolName:      __imp_two
66         Type:            IMAGE_REL_AMD64_REL32
67       - VirtualAddress:  27
68         SymbolName:      __imp_left
69         Type:            IMAGE_REL_AMD64_REL32
70       - VirtualAddress:  33
71         SymbolName:      __imp_right
72         Type:            IMAGE_REL_AMD64_REL32
73 symbols:
74   - Name:            .drectve
75     Value:           0
76     SectionNumber:   1
77     SimpleType:      IMAGE_SYM_TYPE_NULL
78     ComplexType:     IMAGE_SYM_DTYPE_NULL
79     StorageClass:    IMAGE_SYM_CLASS_STATIC
80     SectionDefinition:
81       Length:          47
82       NumberOfRelocations: 0
83       NumberOfLinenumbers: 0
84       CheckSum:        0
85       Number:          0
86   - Name:            __imp_one
87     Value:           0
88     SectionNumber:   0
89     SimpleType:      IMAGE_SYM_TYPE_NULL
90     ComplexType:     IMAGE_SYM_DTYPE_NULL
91     StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
92   - Name:            __imp_two
93     Value:           0
94     SectionNumber:   0
95     SimpleType:      IMAGE_SYM_TYPE_NULL
96     ComplexType:     IMAGE_SYM_DTYPE_NULL
97     StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
98   - Name:            __imp_left
99     Value:           0
100     SectionNumber:   0
101     SimpleType:      IMAGE_SYM_TYPE_NULL
102     ComplexType:     IMAGE_SYM_DTYPE_NULL
103     StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
104   - Name:            __imp_right
105     Value:           0
106     SectionNumber:   0
107     SimpleType:      IMAGE_SYM_TYPE_NULL
108     ComplexType:     IMAGE_SYM_DTYPE_NULL
109     StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
110   - Name:            main
111     Value:           0
112     SectionNumber:   2
113     SimpleType:      IMAGE_SYM_TYPE_NULL
114     ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
115     StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
116   - Name:            __delayLoadHelper2
117     Value:           64
118     SectionNumber:   2
119     SimpleType:      IMAGE_SYM_TYPE_NULL
120     ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
121     StorageClass:    IMAGE_SYM_CLASS_EXTERNAL