Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / lld / test / COFF / rsds.test
blob475249ca4056669a3bd64fcc184ff45bda054ec0
1 # RUN: yaml2obj %s -o %t.obj
3 # RUN: rm -f %t.dll %t.pdb
4 # RUN: lld-link /debug /pdbaltpath:test.pdb /dll /out:%t.dll /entry:DllMain %t.obj
5 # RUN: llvm-readobj --coff-debug-directory %t.dll > %t.1.txt
6 # RUN: lld-link /debug /pdbaltpath:test.pdb /dll /out:%t.dll /entry:DllMain %t.obj
7 # RUN: llvm-readobj --coff-debug-directory %t.dll > %t.2.txt
8 # RUN: cat %t.1.txt %t.2.txt | FileCheck %s
10 # RUN: rm -f %t.dll %t.pdb
11 # RUN: lld-link /debug /pdb:%t1.pdb /dll /out:%t.dll /entry:DllMain %t.obj
12 # RUN: llvm-readobj --coff-debug-directory %t.dll > %t.3.txt
13 # RUN: lld-link /debug /pdb:%t2.pdb /dll /out:%t.dll /entry:DllMain %t.obj
14 # RUN: llvm-readobj --coff-debug-directory %t.dll > %t.4.txt
15 # RUN: cat %t.3.txt %t.4.txt | FileCheck --check-prefix TWOPDBS %s
17 # RUN: rm -f %t.dll %t.pdb
18 # RUN: lld-link /Brepro /dll /out:%t.dll /entry:DllMain %t.obj
19 # RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix REPRO %s
21 # RUN: rm -f %t.dll %t.pdb
22 # RUN: lld-link /Brepro /debug /dll /out:%t.dll /entry:DllMain %t.obj
23 # RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix REPRODEBUG %s
25 # RUN: rm -f %t.dll %t.pdb
26 # RUN: lld-link /lldmingw /debug:dwarf /dll /out:%t.dll /entry:DllMain %t.obj
27 # RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix MINGW %s
29 # CHECK: File: [[FILE:.*]].dll
30 # CHECK: DebugDirectory [
31 # CHECK:   DebugEntry {
32 # CHECK:     Characteristics: 0x0
33 # CHECK:     TimeDateStamp: 
34 # CHECK:     MajorVersion: 0x0
35 # CHECK:     MinorVersion: 0x0
36 # CHECK:     Type: CodeView (0x2)
37 # CHECK:     SizeOfData: 0x{{[^0]}}
38 # CHECK:     AddressOfRawData: 0x{{[^0]}}
39 # CHECK:     PointerToRawData: 0x{{[^0]}}
40 # CHECK:     PDBInfo {
41 # CHECK:       PDBSignature: 0x53445352
42 # CHECK:       PDBGUID: [[GUID:\(([A-Za-z0-9]{2} ?){16}\)]]
43 # CHECK:       PDBAge: 1
44 # CHECK:       PDBFileName: {{.*}}.pdb
45 # CHECK:     }
46 # CHECK:   }
47 # CHECK: ]
48 # CHECK: File: [[FILE]].dll
49 # CHECK: DebugDirectory [
50 # CHECK:   DebugEntry {
51 # CHECK:     Characteristics: 0x0
52 # CHECK:     TimeDateStamp: 
53 # CHECK:     MajorVersion: 0x0
54 # CHECK:     MinorVersion: 0x0
55 # CHECK:     Type: CodeView (0x2)
56 # CHECK:     SizeOfData: 0x{{[^0]}}
57 # CHECK:     AddressOfRawData: 0x{{[^0]}}
58 # CHECK:     PointerToRawData: 0x{{[^0]}}
59 # CHECK:     PDBInfo {
60 # CHECK:       PDBSignature: 0x53445352
61 # CHECK:       PDBGUID: [[GUID]]
62 # CHECK:       PDBAge: 1
63 # CHECK:       PDBFileName: {{.*}}.pdb
64 # CHECK:     }
65 # CHECK:   }
66 # CHECK: ]
68 # TWOPDBS: File: [[FILE:.*]].dll
69 # TWOPDBS: DebugDirectory [
70 # TWOPDBS:   DebugEntry {
71 # TWOPDBS:     Characteristics: 0x0
72 # TWOPDBS:     TimeDateStamp: 
73 # TWOPDBS:     MajorVersion: 0x0
74 # TWOPDBS:     MinorVersion: 0x0
75 # TWOPDBS:     Type: CodeView (0x2)
76 # TWOPDBS:     SizeOfData: 0x{{[^0]}}
77 # TWOPDBS:     AddressOfRawData: 0x{{[^0]}}
78 # TWOPDBS:     PointerToRawData: 0x{{[^0]}}
79 # TWOPDBS:     PDBInfo {
80 # TWOPDBS:       PDBSignature: 0x53445352
81 # TWOPDBS:       PDBGUID: [[GUID:\(([A-Za-z0-9]{2} ?){16}\)]]
82 # TWOPDBS:       PDBAge: 1
83 # TWOPDBS:       PDBFileName: {{.*}}.pdb
84 # TWOPDBS:     }
85 # TWOPDBS:   }
86 # TWOPDBS: ]
87 # TWOPDBS: File: [[FILE]].dll
88 # TWOPDBS: DebugDirectory [
89 # TWOPDBS:   DebugEntry {
90 # TWOPDBS:     Characteristics: 0x0
91 # TWOPDBS:     TimeDateStamp: 
92 # TWOPDBS:     MajorVersion: 0x0
93 # TWOPDBS:     MinorVersion: 0x0
94 # TWOPDBS:     Type: CodeView (0x2)
95 # TWOPDBS:     SizeOfData: 0x{{[^0]}}
96 # TWOPDBS:     AddressOfRawData: 0x{{[^0]}}
97 # TWOPDBS:     PointerToRawData: 0x{{[^0]}}
98 # TWOPDBS:     PDBInfo {
99 # TWOPDBS:       PDBSignature: 0x53445352
100 # TWOPDBS-NOT:       PDBGUID: [[GUID]]
101 # TWOPDBS:       PDBAge: 1
102 # TWOPDBS:       PDBFileName: {{.*}}.pdb
103 # TWOPDBS:     }
104 # TWOPDBS:   }
105 # TWOPDBS: ]
107 # REPRO: File: {{.*}}.dll
108 # REPRO: DebugDirectory [
109 # REPRO:   DebugEntry {
110 # REPRO:     Characteristics: 0x0
111 # REPRO:     TimeDateStamp: 
112 # REPRO:     MajorVersion: 0x0
113 # REPRO:     MinorVersion: 0x0
114 # REPRO:     Type: Repro (0x10)
115 # REPRO:     SizeOfData: 0x0
116 # REPRO:     AddressOfRawData: 0x0
117 # REPRO:     PointerToRawData: 0x0
118 # REPRO:   }
119 # REPRO: ]
121 # REPRODEBUG: File: {{.*}}.dll
122 # REPRODEBUG: DebugDirectory [
123 # REPRODEBUG:   DebugEntry {
124 # REPRODEBUG:     Characteristics: 0x0
125 # REPRODEBUG:     TimeDateStamp: 
126 # REPRODEBUG:     MajorVersion: 0x0
127 # REPRODEBUG:     MinorVersion: 0x0
128 # REPRODEBUG:     Type: CodeView (0x2)
129 # REPRODEBUG:     SizeOfData: 0x{{[^0]}}
130 # REPRODEBUG:     AddressOfRawData: 0x{{[^0]}}
131 # REPRODEBUG:     PointerToRawData: 0x{{[^0]}}
132 # REPRODEBUG:     PDBInfo {
133 # REPRODEBUG:       PDBSignature: 0x53445352
134 # REPRODEBUG:       PDBGUID: 
135 # REPRODEBUG:       PDBAge: 1
136 # REPRODEBUG:       PDBFileName:
137 # REPRODEBUG:     }
138 # REPRODEBUG:   }
139 # REPRODEBUG:   DebugEntry {
140 # REPRODEBUG:     Characteristics: 0x0
141 # REPRODEBUG:     TimeDateStamp: 
142 # REPRODEBUG:     MajorVersion: 0x0
143 # REPRODEBUG:     MinorVersion: 0x0
144 # REPRODEBUG:     Type: Repro (0x10)
145 # REPRODEBUG:     SizeOfData: 0x0
146 # REPRODEBUG:     AddressOfRawData: 0x0
147 # REPRODEBUG:     PointerToRawData: 0x0
148 # REPRODEBUG:   }
149 # REPRODEBUG: ]
151 # MINGW: File: {{.*}}.dll
152 # MINGW: DebugDirectory [
153 # MINGW:   DebugEntry {
154 # MINGW:     Characteristics: 0x0
155 # MINGW:     TimeDateStamp:
156 # MINGW:     MajorVersion: 0x0
157 # MINGW:     MinorVersion: 0x0
158 # MINGW:     Type: CodeView (0x2)
159 # MINGW:     SizeOfData: 0x{{[^0]}}
160 # MINGW:     AddressOfRawData: 0x{{[^0]}}
161 # MINGW:     PointerToRawData: 0x{{[^0]}}
162 # MINGW:     PDBInfo {
163 # MINGW:       PDBSignature: 0x53445352
164 # MINGW:       PDBGUID: [[GUID:\(([A-Za-z0-9]{2} ?){16}\)]]
165 # MINGW:       PDBAge: 1
166 # MINGW:       PDBFileName:
167 # MINGW:     }
168 # MINGW:   }
169 # MINGW: ]
170 --- !COFF
171 header:
172   Machine:         IMAGE_FILE_MACHINE_I386
173   Characteristics: [  ]
174 sections:
175   - Name:            .text
176     Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
177     Alignment:       4
178     SectionData:     31C0C3
179   - Name:            .data
180     Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
181     Alignment:       4
182     SectionData:     ''
183   - Name:            .bss
184     Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
185     Alignment:       4
186     SectionData:     ''
187 symbols:
188   - Name:            .text
189     Value:           0
190     SectionNumber:   1
191     SimpleType:      IMAGE_SYM_TYPE_NULL
192     ComplexType:     IMAGE_SYM_DTYPE_NULL
193     StorageClass:    IMAGE_SYM_CLASS_STATIC
194     SectionDefinition:
195       Length:          3
196       NumberOfRelocations: 0
197       NumberOfLinenumbers: 0
198       CheckSum:        3963538403
199       Number:          1
200   - Name:            .data
201     Value:           0
202     SectionNumber:   2
203     SimpleType:      IMAGE_SYM_TYPE_NULL
204     ComplexType:     IMAGE_SYM_DTYPE_NULL
205     StorageClass:    IMAGE_SYM_CLASS_STATIC
206     SectionDefinition:
207       Length:          0
208       NumberOfRelocations: 0
209       NumberOfLinenumbers: 0
210       CheckSum:        0
211       Number:          2
212   - Name:            .bss
213     Value:           0
214     SectionNumber:   3
215     SimpleType:      IMAGE_SYM_TYPE_NULL
216     ComplexType:     IMAGE_SYM_DTYPE_NULL
217     StorageClass:    IMAGE_SYM_CLASS_STATIC
218     SectionDefinition:
219       Length:          0
220       NumberOfRelocations: 0
221       NumberOfLinenumbers: 0
222       CheckSum:        0
223       Number:          3
224   - Name:            '@feat.00'
225     Value:           1
226     SectionNumber:   -1
227     SimpleType:      IMAGE_SYM_TYPE_NULL
228     ComplexType:     IMAGE_SYM_DTYPE_NULL
229     StorageClass:    IMAGE_SYM_CLASS_STATIC
230   - Name:            _DllMain
231     Value:           0
232     SectionNumber:   1
233     SimpleType:      IMAGE_SYM_TYPE_NULL
234     ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
235     StorageClass:    IMAGE_SYM_CLASS_EXTERNAL